你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

有没有大神试过把中断函数放到ram里执行的

[复制链接]
smallcsduck 提问时间:2017-10-17 22:46 /
我试过在sct里面把一些代码的执行域放在ram里 加载域还是会在rom里
但是貌似c运行时库的scatterload只会拷贝rw段去ram里 不会拷贝代码段到ram里
不知道是不是这样的?
那是不是要自己写代码把中断的代码拷贝到ram里 然后修改向量表里的地址指向ram的代码里面
哪位大神研究过
收藏 评论5 发布时间:2017-10-17 22:46

举报

5个回答
smallcsduck 回答时间:2017-10-17 23:47:14
我看了一下 st的f103貌似icode总线只是接在flash上的
sram接在总线矩阵上通过dcode到内核 那就是sram里面不能取指了啊
就是没戏了呗
酱哒哒 回答时间:2017-10-18 09:27:28
1.sram要是不能取指令,怎么进行RAM程序调试

2.要想实现分散加载,MDK中必须更改scatter文件,设置好分配域地址。如果IAR ,可以直接使用ramfunc(),或者直接修改icf文件,进行分散配置。

3.你需要看看分散加载的相关文档

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

smallcsduck 回答时间:2017-10-18 15:36:54
酱哒哒 发表于 2017-10-18 09:27
1.sram要是不能取指令,怎么进行RAM程序调试

2.要想实现分散加载,MDK中必须更改scatter文件,设置好分配 ...

我的f103的ram里面程序调试就没成功过 不知道为什么
mdk的分散加载你有试过么?成功的例子来看看呢
酱哒哒 回答时间:2017-10-18 19:16:07
1.STM32F103是肯定可ram运行程序,程序调试时,记得调整boot引脚(芯片手册应该有SRAM加载的设置)

2.MDK的分散加载用的ARM的语法,明显不如IAR的语法简单,所以,后来都用的IAR改icf文件,毕竟更容易简单。这一点并不能帮助你,但是F103是肯定可以RAM运行指定程序的,这一点我可以保证(以前做过F103的软加密,某些核心程序就是在RAM指定地址执行)。

3.关于ARM 分散加载的语法,我以前看的周立功的,下面是文库连接,你如果坚持MDK,可以看看,https://wenku.baidu.com/view/e77c57f1a26925c52dc5bf55.html

4.关于F103总线结构图中,表面上SRAM没有和I-Code总线连接。其实SRAM通过总线复用器,直接可以I_BUS  D_BUS访问,与总线无关。那个图,可能会误导。
smallcsduck 回答时间:2017-10-19 01:33:01
酱哒哒 发表于 2017-10-18 09:27
1.sram要是不能取指令,怎么进行RAM程序调试

2.要想实现分散加载,MDK中必须更改scatter文件,设置好分配 ...

好吧 我又试了一下 貌似是可以的 把程序放在单独的c文件里 然后把运行域定义在ram里 确实在跑
谢谢

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版