-
Notifications
You must be signed in to change notification settings - Fork 5.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[component][mpu] [update] memory protect unit abstract layer. #5379
Conversation
|
||
struct rt_mal | ||
{ | ||
rt_uint16_t index; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这个作用是什么,会不会非对齐
@@ -0,0 +1,33 @@ | |||
menu "MPU abstraction layer" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is mal here? Please discuss.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这个什么意思呢,是名字不好,还是放的位置不好?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mal这个名字直接放置于components下都会显得奇怪。或者放入到components/drivers目录下,或者定义一些公共的API接口,由不同的硬件架构进行实现,从而放到libcpu中。
HardFault_Handler PROC | ||
MemManage_Handler |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这个Handler在这里去掉了 ,如果不开mal是不是就报错了?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这里要考虑不开MAL的情况下,如果触发了异常,怎么处理
从名字上来说,直接使用mpu应该会更直接 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
请仔细考虑 & 设计
@@ -0,0 +1,33 @@ | |||
menu "MPU abstraction layer" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mal这个名字直接放置于components下都会显得奇怪。或者放入到components/drivers目录下,或者定义一些公共的API接口,由不同的硬件架构进行实现,从而放到libcpu中。
default 2 | ||
|
||
config RT_MPU_REGIONS_NUMBER | ||
int "Set mpu regions number" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
这个MPU是一份ARM only的实现吗?如果是这样,那么放入到components下是非常不适合的
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
是通用的实现,支持 ARM RISCV
|
||
static rt_err_t _mpu_get_info(rt_thread_t thread, rt_uint32_t type, void *arg) | ||
{ | ||
return RT_EOK; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
所有的risc-v实现都是空的?…… Please tag this PR as draft.
@@ -127,6 +127,9 @@ PendSV_Handler PROC | |||
STR r1, [r0] ; update from thread stack pointer | |||
|
|||
switch_to_thread | |||
IMPORT rt_mpu_table_switch |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TAB/space ……
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
汇编.s .asm .S .a后缀也应该纳入ci格式检查
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
不过上次FreeRTOS那边曾经提到过一个问题,貌似有些编译器如果改成空格会出问题,所以需要format之后再实际编译测试一下才可以。
拉取/合并请求描述:(PR description)
[
描述
MAL (mpu abstract layer) 是 rt-thread 官方基于 Memory Protect Unit (MPU) 做的一款用于内存保护的抽象层组件。
作用
内存保护单元(MPU),提供了内存区域保护功能。通过 MPU,可以使程序更具健壮性,提高嵌入式系统的稳定性,使系统更加安全。通过使用 MPU 组件能使 RT-Thread 操作系统在进军军工、医疗、汽车等行业更具竞争力。MAL 组件具有以下特性:
测试
已在 ART-Pi 上测试完成
]
以下的内容不应该在提交PR时的message修改,修改下述message,PR会被直接关闭。请在提交PR后,浏览器查看PR并对以下检查项逐项check,没问题后逐条在页面上打钩。
The following content must not be changed in the submitted PR message. Otherwise, the PR will be closed immediately. After submitted PR, please use a web browser to visit PR, and check items one by one, and ticked them if no problem.
当前拉取/合并请求的状态 Intent for your PR
必须选择一项 Choose one (Mandatory):
代码质量 Code Quality:
我在这个拉取/合并请求中已经考虑了 As part of this pull request, I've considered the following:
#if 0
代码,不包含已经被注释了的代码 All redundant code is removed and cleaned up