Part Number:TMS570LC4357
当前我在片内Flash的Bank 0和Bank 1放两个软件版本(两个软件映像, software image),且这两个软件版本共同使用一个异常向量表(从0x0开始)。
两个软件版本彼此互相升级(直接擦除并写入),在升级过程中不会关中断。
在Bank 0的软件版本升级在Bank 1中的软件版本不会有问题,但在Bank 1中的软件版本升级在Bank 0中的软件版本时无法使用中断,因为无法在擦写Bank 0的同时执行异常向量表的代码
当前我们想使用片内flash的pom机制,将异常向量表保存在sram中,并替换flash的异常向量表;具体的做法就是在系统开启中断之前,将Flash中的异常向量表拷贝到SRAM中,然后配置POM,使得访问Flash的内容和SRAM中的一致。
但我们这么做之后并没有取得想要的结果,在执行Bank 0相关的擦除/写入时,板子会卡死。
我们的问题是:
1. 是否可以通过POM机制,让系统在跳转到异常向量表的时候,实际访问的是SRAM而不是片内Flash使得不会出现停止行为呢。
2. 在擦除/写入片内Flash时,无法同时读取/执行同一个Bank的内容,实现上是怎么检测到正在对同一个Bank同时进行擦/写与读取,然后CPU Stall的呢,具体的机制如何
Jialiang Ou:
补充一点,在执行Bank 0相关擦写/写入时,运行在Bank 1的软件映像上
,
Gary Lu:
Jialiang Ou 说:1. 是否可以通过POM机制,让系统在跳转到异常向量表的时候,实际访问的是SRAM而不是片内Flash使得不会出现停止行为呢。
POM主要用监控和保护Flash存储器,而不是用于替换访问Flash内容
Jialiang Ou 说:2. 在擦除/写入片内Flash时,无法同时读取/执行同一个Bank的内容,实现上是怎么检测到正在对同一个Bank同时进行擦/写与读取,然后CPU Stall的呢,具体的机制如何
这涉及到芯片的内部工作原理和存储器管理,在硬件层面实现存储器保护和访问控制机制,确保对同一存储器区域的并发访问不会导致数据损坏或错误执行
,
Gary Lu:
这样应该会导致并发访问和存储器保护