arvinzzz
b817c490ba
fix: 修复misc_config中defines未初始化的错误
...
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I4eecfc1af2b0cdc39922a8ce299eb8ab6b7c6e8c
2022-12-22 11:28:31 +08:00
arvinzzz
d4db5a5a75
feature: BUILD.gn中device_path允许指向vendor
...
close: #I5N9NC
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: If6a05871a0c78a92d6370b73528674e411642e20
2022-08-20 15:54:44 +08:00
arvinzzz
009d2503fb
refactor: 编译框架对不同工具链的解耦优化
...
close: #I5GQ9A
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I3e371a67bdab75c53e769e08c1c54ec83c741a69
2022-07-12 16:54:35 +08:00
arvinzzz
d92c10d92d
feature: 编译框架支持iccarm
...
close: #I5GL0C
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I94babac4d748b0c714835522a31f02b4f70de3e9
2022-07-12 14:54:15 +08:00
x_xiny
7c5a05f352
feature: C库适配iar
...
re #I5BUG3
Signed-off-by: x_xiny <1301913191@qq.com>
Change-Id: I84591c7593622de22a33f411b7011d17034c6d55
2022-06-14 15:46:29 +08:00
likailong
05642f05ae
feat: 支持select.h的FD_SETSIZE宏配置
...
1. FD_SETSIZE由普通文件+网络文件的文件句柄个数之和决定。
2. 以前vfs_config.h引入fatfs.h和lfs_api.h又会引入其他头文件,
导致变异问题。因此需要将配置宏拆分出来放到fatfs_conf.h和
lfs_conf.h 头文件中。
3. lwipopts.h会提供网络的句柄个数,依赖FD_SETSIZE,而select.h会提供FD_SETSIZE,
依赖网络句柄个数,因此会形成相互依赖的情况,需要通过顺序来解决。
4. 网络中新增ntohl的定义。
close: #I4RYK4
Signed-off-by: likailong <likailong@huawei.com>
2022-01-24 17:24:26 +08:00
SimonLi
11215e111a
build: 修复内核gn编译依赖的问题
...
背景:
1. //kernel/liteos_m/BUILD.gn通过excutable生成config.gni文件到
out目录下
2. //kernel/liteos_m/liteos.gni定义内核模板,依赖out目录下的config.gni
意味着使用内核模板的模块(例如device/board、device/soc)需要依赖
kernel/liteos_m/BUILD.gn先加载,有这个顺序依赖约束。
解决方案:
将生成config.gni部分移到liteos.gni模块定义处,解决这个约束。
Signed-off-by: SimonLi <likailong@huawei.com>
2022-01-08 14:58:38 +08:00
Caoruihong
02e6a0a7ea
chore(build): set complete_static_lib false for libkernel
...
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: Ia3da4f963f44babdc802c58c0afbb1adc1f16ee9
2021-12-08 17:53:53 +08:00
openharmony_ci
cd31fc9a8b
!368 【feature】内核支持musl与newlib C库切换
...
Merge pull request !368 from Zhaotianyu/1020newlib
2021-12-04 14:19:55 +00:00
arvinzzz
753d86014b
feature: 支持newlib与musl切换
...
系统支持newlib,并且可以与musl-C自由切换
1. 新增newlib支持,适配newlib的预留钩子,针对系统能力适配newlib头文件(补充宏定义,结构体定义,posix能力开关),
采用标准C与自研posix接口声明与结构体定义混合作为C库
2. 梳理kal的依赖关系,kal作为内核对外提供的标准接口,下属包含cmsis、libc、posix。
cmsis为内核对cmsis接口的支持,libc为内核对三方C库的适配及使用,posix为内核自研提供的posix标准接口。
若采用musl-C,则kal中选取libc/musl,posix共同作为C库对外支持;
若采用newlib-C,则kal中选取libc/newlib,部分posix共同作为C库对外支持。
3. fs整理,components/fs下提供基于posix标准的接口改为内部对外接口,供musl以及newlib切换 适配使用
close: #I4ENQ1
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I72eda5ac5499f72c67e800e22b0f39eb288f2b94
2021-12-04 21:43:55 +08:00
kenneth
b542aab09d
fix: 去掉编译选项-fno-short-enums
...
编译选项-fno-short-enums是liteos-m支持kconfig(https://gitee.com/openharmony/kernel_liteos_m/pulls/371)时从Liteos-a核引入的编译选项。添加该编译选项后会输出警告信息 ,
需要去掉该编译选项。
fix #I4JY32
Signed-off-by: kenneth <zhushangyuan@huawei.com>
2021-11-29 19:07:10 +08:00
arvinzzz
e45bcc9d4f
refactor: 将安全函数库的编译行为由三方移至内核进行控制
...
close: #I4JUKM
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I201507aae937a01f49eafcf5909c07eae4a60123
2021-11-26 11:07:37 +08:00
yaoxiaoyu
9b4386380c
make //kernel/lite_m:kernel available for all targets
...
Signed-off-by: yaoxiaoyu <yaoxiaoyu1@huawei.com>
Change-Id: Ibec8b49c6ece051301fd4d298c7a3b9b20d53409
2021-11-24 15:30:08 +08:00
SimonLi
3f1c04dd57
feat: Board 和 SoC分离,编译适配
...
1. BUILD.gn 根据device_path中是否包含board,来判别 SoC 和 Board 分离特性是否打开,
根据特性开关兼容以前老的Build.gn编译方式
2. Makefile 中新增BOARD_COMPANY环境变量传给Kconfig,确定选择哪一个 Board
3. Kconfig 兼容老的形式,新增 device 路径下 Kconfig.liteos_m.xxxx 表示为 liteos_m
适配 Kconfig 功能,不会影响其他内核适配。主要是同个device 路径下,会有多个不同的
内核进行适配Kconfig。
Signed-off-by: SimonLi <likailong@huawei.com>
Change-Id: Iaa2ffc6e56ab9127bb13dbbb934414f63dfbcdc2
2021-11-20 08:17:52 +08:00
Caoruihong
201da62e1f
chore: move kernel/arch to arch
...
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I0f0b6f5cff967c47acf58be133a12a0fd98f4643
2021-11-16 00:45:24 +08:00
Caoruihong
e5636f7aca
feat(build): add module_group and comment out arch_cflags
...
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I83a248d313ec64a5bca6eb860fb84385aac446a0
2021-11-13 19:59:04 +08:00
Caoruihong
7e673430dc
feat(build): support Kconfig
...
Kconfig usages are the same with liteos_a
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: I9aacbb69da88d5427cced89d1a49cb1041afa998
2021-11-05 12:18:04 +08:00
Caoruihong
9c69e6039e
chore: fix typo: testsuits --> testsuites
...
keep testsuites the same directory name as in liteos_a
Signed-off-by: Caoruihong <crh.cao@huawei.com>
2021-10-21 21:39:32 +08:00
arvinzzz
988fd85fae
fix: 支持硬浮点编译
...
1. 通过本工程的gn编译时,需要在device目录下,单板的关于内核的config.gn中指定-mfloat-abi的等级,并在单板相关代码的编译选项中保持-mfloat-abi一致
2. 通过本工程的Makefile编译时,需要在kernel/liteos_m/targets/下添加单板相关的代码配置,在Makefile中设置-mfloat-abi即可
3. 通过IDE编译本工程时,需要在IDE的汇编文件相关编译选项中加入 -imacros $(LITEOSTOPDIR)/kernel/include/los_config.h,保证浮点等级在汇编文件中生效
close: #I48KJP
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: Ibf9b750b922be2530de349981d55e40b5919933f
2021-09-10 17:30:46 +08:00
zhushengle
3798091d87
fix: 内核模块编译增加-Werror编译选项,且清除内核编译告警
...
Close #I46E6S
Change-Id: If1362c02a0a344da881a9bf90e41f0a43ba33609
Signed-off-by: zhushengle <zhushengle@huawei.com>
2021-09-06 16:16:43 +08:00
wangchen
deff7c921f
fix: M核编译配置修改
...
【背景】完善M核编译配置选项。
【修改方案】
1,在build.gn中添加config.gni的包含
2,修改部分build.gn中的格式规范问题
【影响】
对现有的产品编译不会有影响。
re #I46XEA
Signed-off-by: wangchen <253227059@qq.com>
2021-08-24 10:57:48 +08:00
Haryslee
d75383400e
feat: 支持native动态加载组件
...
1.【需求描述】
动态库开发部分:
gcc的sample code。
提供生成暴露接口生成机制,并允许产品新增需要暴露的接口。
提供可以判断库允许资源大小的能力,并提供相关工具辅助开发者确定开发的库要求的资源是否可以满足。
动态库运行部分:
提供elf load的api,可以加载指定路径下的库,并完成符号重映射等运行准备。
提供elf 暴露符号调用的api,用于调用库的api。
elf加载&链接异常时,有明确错误记录,返回明确错误类型。
提供elf 卸载的api。
2.【方案描述】
(1) 通过灌段的形式记录需要导出符号的地址信息,用于暴露内核对外的接口,在加载链接器中通过查询
对应的符号信息获取符号地址。
(2) 加载链接时,解析共享库并将共享库中可加载段通过文件系统读入内存中,并对共享库中未定义的、
需要重定位的符号进行重定位。需要调用符号时,根据符号名通过哈希表即可查询共享库提供的对应符号
的地址。
BREAKING CHANGE:
新增4个对外接口,声明在los_dynlink.h文件中,分别为:
(1) LOS_DynlinkInit: 动态加载模块初始化。
(2) LOS_SoLoad: 加载指定路径的共享库。
(3) LOS_FindSym: 根据共享库句柄查找指定符号。
(4) LOS_SoUnload: 卸载共享库。
close #I418HJ
Signed-off-by: Haryslee <lihao189@huawei.com>
Change-Id: I7669b7ef20096294f9d1094c85ac6602fefad354
2021-08-10 20:26:40 +08:00
LiteOS2021
56c93a641b
feat: L0 支持Trace
...
1.【需求描述】
L0 支持Trace,提供两种工作模式:在线模式、离线缓存模式, 用于按时间线追踪系统事件,如任务切换、中断、ipc等。
2.【方案描述】
(1).在内核模块预置静态代码桩
(2).触发桩后,收集系统上下文信息
(3).离线模式则写入内存,用户可通过dump导出;
(4).在线模式通过pipeline对接IDE进行可视化解析和展示;
BREAKING CHANGE:
1.新增一系列trace的对外API,位于los_trace.h中.
LOS_TRACE_EASY简易插桩
LOS_TRACE标准插桩
LOS_TraceInit配置Trace缓冲区的地址和大小
LOS_TraceStart开启事件记录
LOS_TraceStop停止事件记录
LOS_TraceRecordDump输出Trace缓冲区数据
LOS_TraceRecordGet获取Trace缓冲区的首地址
LOS_TraceReset清除Trace缓冲区中的事件
LOS_TraceEventMaskSet设置事件掩码,仅记录某些模块的事件
LOS_TraceHwiFilterHookReg注册过滤特定中断号事件的钩子函数
Close #I41Y9Y
Signed-off-by: LiteOS2021 <dinglu@huawei.com>
2021-07-30 09:29:37 +08:00
silen
97283b7c5d
feat: add L0 shell function
...
Change-Id: I7f10bd365455c32006c22a9f6e2368fe6c229a6a
Signed-off-by: silen <wuyunjie@huawei.com>
2021-07-13 22:04:30 +08:00
YOUR_NAME
8515f0dc8f
chore: provide lwip gn file for liteos_m
...
provide lwip gn file for liteos_m
close: #I3Y2WZ
Signed-off-by: liujiandong <liujiandong1@huawei.com>
2021-06-28 17:13:44 +08:00
zhushengle
558ce14bec
feat: L0 支持低功耗框架
...
1.【需求描述】
L0 支持低功耗投票框架, 使内核与应用、驱动分离开,通过注册及投票机制控制系统的低功耗模式,
减低系统功耗,提升设备电池寿命。
2.【方案描述】
(1).提供注册机制,使驱动与内核分离
(2).提供投票机制,判断系统运行模式
(3).记录持锁设备,便于回溯
进入:系统运行进入idle任务时判断当前的功耗模式,如果上层应用未对当前功耗模式(deep和shutdown)
持锁,则系统准备进入当前模式,首先所有设备依次进入当前模式,如果有设备进入当前模式失败,则恢复
已进入当前模式的所有设备,并且功耗模式变为normal模式;设备依次进入当前功耗模式后cpu再进入当前
功耗模式。
恢复:功耗模式为deep时,需要恢复逻辑,时系统恢复运行。当有中断出发时,系统会退出低功耗模式,
恢复顺序为:首先cpu先恢复,然后设备依次恢复。
BREAKING CHANGE:
1.原调度中基于tick timer的低功耗扩展和当前的pm模块合并,删除原对外接口LOS_SchedSleepInit,
变为pm模块统一提供的LOS_PmRegistered接口.
2.原来在arch los_timer.h下提供的低功耗模式为枚举LOS_SysSleepEnum,其中OS_SYS_NORMAL_SLEEP
和OS_SYS_DEEP_SLEEP不符合对外定义,统一修改为LOS_SYS_NORMAL_SLEEP和LOS_SYS_DEEP_SLEEP,
并移至los_pm.h中.
3.VOID HalEnterSleep(LOS_SysSleepEnum sleep) 变更为UINT32 HalEnterSleep(VOID).
Close #I3UDNV
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Id5382c42c8055ba7850895a3f575130a73e38a65
2021-06-22 13:15:06 +08:00
Caoruihong
420e781f33
chore: adjust path of posix header files
...
path of posix header files are exposed via public_configs
of //kernel/liteos_m/kal/posix
Signed-off-by: Caoruihong <crh.cao@huawei.com>
Change-Id: Id838549e1a952d6ddb8664792570f265edfbd91c
2021-06-15 12:11:12 +08:00
arvinzzz
2d9bbd2769
fix: 修复不规范的copyright
...
close: #I3SPJ1
Change-Id: I6cb01024ef342a0190f5dc9f6cb3a1e815692832
Signed-off-by: arvinzzz <fcykztyu@163.com>
Change-Id: I45c63592b08d29587778209de6af17f932dc86d0
2021-06-02 11:07:59 +08:00
zhangfanfan2
1144b75f3f
fix: remove libsec_kernel
2021-05-13 20:46:46 +08:00
Caoruihong
9cc5b79da1
use liteos_m specific securec build configuration
...
Change-Id: Id1ca03e0c7456724c1ba55fef4dbd07ba6213285
2021-04-27 16:54:32 +08:00
Caoruihong
ad1e09ff77
add third_party FatFs and fix BUILD.gn
...
Change-Id: I456530ca5282d6c4b0904d04ae0a0a5ff155391a
2021-04-23 12:05:48 +08:00
mamingshuai
778c8b9930
update openharmony 1.0.1
2021-03-11 20:30:40 +08:00
l00278955
07d25a8ae8
Description: liteos-m refactoring
...
Reviewed-by: liulei, shenwei
Change-Id: I7baba352c02b78aefc81fc5eca000d840d3b2fe3
2020-11-13 09:55:39 +08:00
wenjun
dc16ffa8cb
add OpenHarmony 1.0 baseline
2020-09-08 16:46:24 +08:00