您尚未登录。

楼主 # 2023-02-11 17:35:46

jack821119
会员
注册时间: 2022-12-19
已发帖子: 48
积分: 28

freertos 运行是否需要使能mmu?

本人比较过rtthread的例程以及freertos的例程,freertos的例程跟论坛中的都是大同小异。
但是发现一个问题,rtthread进行系统之前使能了mmu,但是freertos没看到使能mmu。
那存在着一个问题,当这2个程序分别在ddr运行的时候,没有使能mmu的freertos能正常响应中断不?
之前还以为在spl中使能了 mmu,但是发现spl中也没找到mmu的使能。但是实际中freertos也可以正常运行,也可以响应中断。
哪位大虾 可以 指点下。

离线

#1 2023-02-11 21:04:05

novice
会员
注册时间: 2019-07-26
已发帖子: 112
积分: 93

Re: freertos 运行是否需要使能mmu?

ARM核的MMU有两个作用,1、必须使能MMU才能使能CACHE。2、MMU有内存隔离保护作用。
大多数的RTOS仅支持单核心,因此MMU不是必须的。
RT-THREAD这个OS跟硬件的结合比较多,RT-THREAD提供了一套较完整的开发框架,有利于标准化开发但是学习难道也大一点。FREERTOS仅需要提供一个心跳中断接入就可以,对硬件几乎无感,很容易把芯片厂商提供的驱动例程用起来,因此FREERTOS更容易移植。

离线

#2 2023-02-11 23:15:21

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 462
积分: 329.5
个人网站

Re: freertos 运行是否需要使能mmu?

ARM的MMU和CACHE在一起,为了开CACHE,MMU也必须开。
但可以像RT-Thread那样,虽然开了,但做1:1映射就行。
注意cache只对ddr部分开启,外设部分不开。

RISC-V的大部分芯片,MMU和CACHE分开的,可以不开MMU只开CACHE

当然CACHE也可以不开,但用DDR的话会卡成狗。

可以直接用坛友移植好的: https://whycan.com/t_3958.html
RT-Thread主仓库的bsp也可以用: https://gitee.com/rtthread/rt-thread/tree/v4.0.x/bsp/allwinner_tina

离线

楼主 #3 2023-02-12 09:15:40

jack821119
会员
注册时间: 2022-12-19
已发帖子: 48
积分: 28

Re: freertos 运行是否需要使能mmu?

感谢两位的回答。看你能我的描述 不是很清晰。我意思是想说,链接文件将整个程序都链接到DDR,但是没有开MMU,那么中断的响应还是回到0x00也就是sram的区域,但是链接文件已经将程序包含中断处理函数的那部分 都 放到DDR,那这样不是存在着冲突了吗?这点我一直没搞明白。但是实际情况运行好像又没有什么问题。

离线

#4 2023-02-12 09:48:23

aozima
会员
所在地: 深圳
注册时间: 2019-05-25
已发帖子: 462
积分: 329.5
个人网站

Re: freertos 运行是否需要使能mmu?

映射 or 拷贝

离线

楼主 #5 2023-02-12 11:02:10

jack821119
会员
注册时间: 2022-12-19
已发帖子: 48
积分: 28

Re: freertos 运行是否需要使能mmu?

aozima 说:

映射 or 拷贝

问题是没看到有映射过去到ddr的。

离线

楼主 #6 2023-02-12 11:05:00

jack821119
会员
注册时间: 2022-12-19
已发帖子: 48
积分: 28

Re: freertos 运行是否需要使能mmu?

arm9有将中断向量单独映射到ddr的?@aozima

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn