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

有没有大神试过把中断函数放到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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版