Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
开启mpu后, 1.针对外设0x4000-0000-0x4007-FFFF, 内存属性应该配置成多少呢? 测得的现象: 系统模式下设置MPU->CTRL=5, 分别对该段内存属性设置0x4,0xFF,0xaa等均实验,用户模式下访问ipc寄存器都是直接进入hardfault,但是针对gpio却能进行正常访问, 2.针对地址范围0xE000-0000-0xE00FFFFF,这个范围内的寄存器可以由MPU保护吗,如果可以,那么内存属性应该设置成多少? 以上的问题,希望能提供全面的demo,最好能覆盖所有外设的mpu配置 请尽快回复
这个问题和PPU有关,PPU默认用户模式下不能操作IPC的。 https://forum.ytmicro.com/topic/120/关于非特权模式下-修改-rcu-寄存器-会产生-busfault?_=1737619123120
0xE000-0000-0xE00FFFFF, 这个范围内的寄存器可以由MPU保护的,MPU->CTRL=5,不做特殊配置特权模式下直接用背景默认的就可以。
run 实现发现:0xE000-0000:0xE00-FFFFF内的寄存器,例如NVIC寄存器,在非特权模式下访问,无论是否配置相应的MPU区域,或者使能默认的背景区域,还是报hardfault,猜想这个范围内的寄存器默认只能在特权下访问,但是没有在相应的手册找到依据, 请问下这样的猜想是否正确,或者有无相关的资料可以依据呢
0xE000-0000:0xE00-FFFFF区域对应的是 Private Peripheral Bus (PPB)。 对于PPB来说是只能特权下访问的。
在arm的官方《Armv8-M Architecture Reference Manual》 针对每个内核的寄存器都有详细的说明,如systick的:
run 发现can->mcr寄存器在用户模式下,访问进入hardfault,看手册ppu并未保护这个寄存器,手册里并未找到相关的描述,请分析下原因呢?
在flexcan章节有对flexcan寄存器权限的描述。CAN->MCR需要特权模式。
发帖前请查看
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...