Commit Graph

93 Commits

Author SHA1 Message Date
openharmony_ci fa0b8b0dcb !227 feat: 支持native动态加载组件
Merge pull request !227 from Harylee/mem
2021-08-11 03:14:24 +00: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
JerryH 9709d29b87 fix: 增加MPU功能的开关宏,默认关闭
close #I3WE0S

Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: Id193fd555877ac0c6b5b43e5dd5ede32531b86c4
2021-08-10 19:27:14 +08:00
JerryH c1a6245368 fix: 解决arm9编译冲突问题
close #I420PQ

Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: I788de96b176ae73541f1dc0577262b57179151a7
2021-08-03 10:27:20 +08:00
openharmony_ci 23d56f4b2a !241 M核代码告警清零
Merge pull request !241 from wangchen/m_codex
2021-07-31 03:40:50 +00:00
openharmony_ci 8f5cefe41a !225 fix: 在内核初始化前期启动tick timer
Merge pull request !225 from zhushengle/tick
2021-07-31 02:59:35 +00:00
wangchen cb5f862eaf fix: M核代码告警清零
【背景】定期M核代码告警清零。

【修改方案】
根据工具扫描结果,对代码告警进行更改。

【影响】
对现有的产品编译不会有影响。

re #I4386N
Signed-off-by: wangchen <253227059@qq.com>
2021-07-30 18:34:08 +08:00
wangchen 15a2c17f79 fix: trustzone 中断适配
【背景】当前无法使用 trustzone。

【修改方案】
由于tz需要使用svc中断,因此删除之前使用的HalExcSvcCall的地方,改为HalSVCHandler

【影响】
对现有的产品编译不会有影响。

re #I42TFV
Signed-off-by: wangchen <253227059@qq.com>
2021-07-28 17:40:03 +08:00
zhushengle 70f3aa1c11 fix: risc-v 锁中断在调度后失效
risc-v架构中,由于执行完mret指令之后,未将mstatus.mpie位清除,
导致锁中断后调度保存上下文信息后, 恢复上下文时误将中断打开。

Close #I42OLJ
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ib97b8bd0fc56bd4b2a7e5c474cb240db4e9c2419
2021-07-28 08:57:45 +08:00
zhushengle b3841ed1dd fix: 在内核初始化前期启动tick timer
解决系统未初始化完成前无timer可用的问题。

Close #I410F0
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I3799b9b0ff03cb1dfe80a97816a484df28ae49fd
2021-07-21 10:02:42 +08:00
openharmony_ci c7b91d7a31 !222 优化arm9调度汇编代码,任务执行默认system模式,解决多种模式使用混乱问题
Merge pull request !222 from JerryH/arm9
2021-07-14 03:11:52 +00:00
JerryH1011 97b5b0837b feat: Support arm9 fiq swi mode and using system mode.
close: #I3WLCN

Change-Id: Id14c4e903ca3c3271faf2ecdf6791163ac93b9a8
Signed-off-by: JerryH1011 <huangjieliang@huawei.com>
2021-07-13 20:23:21 +08:00
openharmony_ci 1ab9813256 !205 L0 LiteOS-M支持ARM9架构
Merge pull request !205 from JerryH/master
2021-07-12 00:44:56 +00:00
JerryH1011 6d7c9dfe59 feat: Support arm9
close: #I3WLCN

Change-Id: Id8e3ce9a9a7749cb27b52562e6d506803b38d9af
Signed-off-by: JerryH1011 <huangjieliang@huawei.com>
2021-07-12 06:39:24 +08:00
zhushengle 76dc343c88 feat: risc-v gn 编译框架添加汇编编译选项
Close #I3YS5Y

Change-Id: I380bc3442222ba18a0eebba4022ad6ca032e3de2
Signed-off-by: zhushengle <zhushengle@huawei.com>
2021-07-05 09:26:45 +08:00
wangchen d469da29c6 feat: M33平台支持GCC环境的Trustzone
【背景】M33平台当前仅支持IAR环境的tz,不满足云雀平台需求。

【修改方案】
1. 将 M33当前已有的IAR trustzone修改为gcc可用。

【影响】
对现有的产品编译不会有影响。

re #I3Y85I
Signed-off-by: wangchen <253227059@qq.com>
2021-06-29 15:16:57 +08:00
openharmony_ci d0efdfc20d !169 feat: L0支持低功耗投票框架
Merge pull request !169 from zhushengle/PM
2021-06-22 11:55:22 +00: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
kenneth eb668eb9e0 fix: add API LOS_HwiCreate and LOS_HwDelete
新增对外接口LOS_HwiCreate、LOS_HwiDelete

close #I3R75F

Signed-off-by: kenneth <459864689@qq.com>
2021-06-18 08:53:22 +08:00
kenneth ef12c89c7a fix: fix print format compilation warning
fix print format compilation warning by changing 0x%x to 0x%p

close https://gitee.com/openharmony/kernel_liteos_m/issues/I3OFSQ

Signed-off-by: kenneth <459864689@qq.com>
2021-06-10 14:52:47 +08:00
kenneth bff65877a2 fix: correct the counter of exception type
correct the counter of exception type from 19 to 21

close https://gitee.com/openharmony/kernel_liteos_m/issues/I3SR54

Signed-off-by: kenneth <459864689@qq.com>
2021-06-03 20:45: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
kenneth c3eb3e59e6 fix: fix __cplusplus typo
remove extra c in macro definition  __cpluscplus

close https://gitee.com/openharmony/kernel_liteos_m/issues/I3QQAF
2021-05-18 09:51:34 +08:00
openharmony_ci 5ef2efb347 !118 支持IAR工具的Cortex-m33 TrustZone
Merge pull request !118 from JerryH/master
2021-05-17 21:59:13 +08:00
openharmony_ci 0be2ecfdd0 !110 fix: corrent spelling
Merge pull request !110 from rtos-lover/los_debug
2021-05-15 09:41:16 +08:00
YOUR_NAME bcc34e22ed fix: modify the return type of LOS_IntLock from UINTPTR to UINT32.
Change-Id: I6207e5cb7d612a154a88de4e9e274c67127361d8
2021-05-14 11:33:05 +08:00
YOUR_NAME c70ef201f3 Add Cortex-m33 TrustZone about IAR
close #I3MX1F

Change-Id: I449b01ad7ac714412a26bb9f3a6b723a6c74ca3f
2021-05-11 10:45:52 +08:00
rtos-lover 02ac3ade30 fix:correct spelling
corrent those typos in log_debug.h los_exc.S

close https://gitee.com/openharmony/kernel_liteos_m/issues/I3PVZV
2021-05-08 10:00:57 +08:00
openharmony_ci 032f96e7d6 !102 fix: include file log_config.h in los_mpu.c
Merge pull request !102 from kenneth/master
2021-04-30 08:35:44 +08:00
kenneth 1932d714a5 fix: include file log_config.h in los_mpu.c
include log_config.h in kernel\arch\arm\cortex-m7\iar\los_mpu.c to solve compilation issue

close https://gitee.com/openharmony/kernel_liteos_m/issues/I3OHY2
2021-04-29 15:23:44 +08:00
zhushengle 2f9bfcc6ee fix: L0 GN compilation problem
Close: #I3ORHS
Change-Id: Ia105084336f2ba66f91546226a9383646a0148ce
2021-04-29 10:38:54 +08:00
openharmony_ci 1f725147f3 !96 fix:Fixed kernel error with header protector and header comment description.
Merge pull request !96 from zhushengle/others
2021-04-28 09:09:07 +08:00
openharmony_ci e638d1a41a !60 Add support for Nuclei RISC-V 32 bit processor in LiteOS-M of OpenHarmony
Merge pull request !60 from linzewenTin/dev_nuclei
2021-04-27 20:43:55 +08:00
zhushengle 3907238b0f fix:Fixed kernel error with header protector and header comment description.
Close #I3O4SF

Change-Id: I544cde728fb8131d199a21be440ae02da2fe21fb
2021-04-26 21:13:55 +08:00
Caoruihong 4d556fbe90 use top third_party
Change-Id: I382b10ef7a6adc328777349bce142e58895f7c8d
2021-04-26 17:11:56 +08:00
linzewen 70620b1cb6 Kernel: Remove unused function
Signed-off-by: linzewen <linzewen@nucleisys.com>
2021-04-25 20:58:53 -07:00
linzewen 4475439ca1 Kernel:Fix typo
Signed-off-by: linzewen <linzewen@nucleisys.com>
2021-04-25 20:08:41 -07:00
linzewen dab3a81ac7 Kernel: Update task switch and delete some unused variables
Signed-off-by: linzewen <linzewen@nucleisys.com>
2021-04-25 19:55:37 -07:00
openharmony_ci b8cd812303 !83 fix:Provide a system CPU wait interface
Merge pull request !83 from zhushengle/master
2021-04-25 17:32:38 +08:00
linzewen 1639cf484d Target:Fix typo
Signed-off-by: linzewen <linzewen@nucleisys.com>
2021-04-25 02:25:13 -07:00
linzewen 6c60393567 kernel: update nuclei risc-v porting code
Signed-off-by: linzewen <linzewen@nucleisys.com>
2021-04-25 02:19:24 -07:00
linzewen 4170e57f18 Fix some issues
Move some functions from head file to c file
Change interrupt function argument
The "hwiPrio" argument high 16 bit for level and low 16 bit for priority

Signed-off-by: linzewen <linzewen@nucleisys.com>
2021-04-25 02:19:24 -07:00
linzewen 6c8da43bc9 Add Nuclei RISC-V support
This kernel is setup for rv32 arch with gcc compiler.

Signed-off-by: linzewen <linzewen@nucleisys.com>
2021-04-25 02:19:24 -07:00
openharmony_ci f96848e4ce !85 fix some typos
Merge pull request !85 from kenneth/master
2021-04-25 15:30:16 +08:00
openharmony_ci 8168885709 !82 加入FatFs同时修正BUILD.gn中third_party路径
Merge pull request !82 from Caoruihong/fix_thirdparty_path
2021-04-23 17:57:13 +08:00
zhushengle adaf6cf7c5 fix:Change the interface to LOS_UDelay and change the input parameter to microsecond.
Close #I3NT3Y

Change-Id: Iae33e0aff59480342b07bb4fd2e66969a09affb3
2021-04-23 17:33:27 +08:00
kenneth f6b8cab253 fix: fix some typo issues
change 'LOS_MOUDLE_ID' to 'LOS_MODULE_ID', change 'a interrupt' to 'an interrupt', change 'HalIsIntAcvive' to 'HalIsIntActive' and other typos.

close https://gitee.com/openharmony/kernel_liteos_m/issues/I3NNOQ, https://gitee.com/openharmony/kernel_liteos_m/issues/I3NNR6, https://gitee.com/openharmony/kernel_liteos_m/issues/I3NNTL, https://gitee.com/openharmony/kernel_liteos_m/issues/I3NNQ1
2021-04-23 17:19:01 +08:00
openharmony_ci 3ca3a3e250 !80 fix: fix some misspell in comments
Merge pull request !80 from rtos-lover/master
2021-04-23 14:42:16 +08:00
Caoruihong ad1e09ff77 add third_party FatFs and fix BUILD.gn
Change-Id: I456530ca5282d6c4b0904d04ae0a0a5ff155391a
2021-04-23 12:05:48 +08:00
zhushengle afdda22821 fix:Solution of conflict
Change-Id: If2565e5942ca019865720d56dd8bda1617044e6d
2021-04-22 14:33:20 +08:00