- 主题:碰到一个难以理解的问题
用的arm v7 mcu,flash地址空间从30000000开始,ram首地址20000000。
链接文件把程序安排在300000000开始的地方,运行正常。
但是往后偏移16m,也就是31000000就功能异常,但是没有跑飞。
只有这么一点差异。map文件对比了一下,所有entry都一致后移16m。
用的iar workbench。是否有链接选项针对此问题?
--
FROM 223.104.210.*
都是同步偏移过去的。
中断向量对不上,一下就该跑飞了。
这个没跑飞。
【 在 Fiber1230 的大作中提到: 】
: 中断向量对应改了吗
--
FROM 117.136.8.*
Systick,还有图形模块中断还能正常进入,
但是ostask不能正常调度了。
【 在 GGbond 的大作中提到: 】
: 如何判断没跑飞?又是如何判断功能异常的?
: - 来自「最水木 for iPhone 8」
--
FROM 117.136.8.*
flash 32MB。
程序镜像很小,不到1MB。
【 在 t1111111 的大作中提到: 】
: flash多大?从31000000开始的话,ostask会不会超出valid的flash空间?
--
FROM 27.208.14.*
解决了,
是mpu配置问题。
16M以上空间没有cache支持,
性能暴跌。
所以没有跑飞,
只是功能异常。
【 在 t1111111 的大作中提到: 】
: ostask是怎么调度的,在时钟中断中吗,能否确定ostask是否被调到?
--
FROM 223.104.212.*
做过map文件对比,地址几乎完全偏移关系。
今天发现是mpu没有把16m以上地址空间包含进去导致的。
【 在 golfman0715 的大作中提到: 】
: 难道是代码或内存覆盖导致的?老早以前做单片机时曾遇到过类似,或者把两种情况下加载后的机器码导出直接比对下?
--
FROM 223.104.212.*