smallcsduck 发表于 2017-10-17 22:46:55

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

我试过在sct里面把一些代码的执行域放在ram里 加载域还是会在rom里
但是貌似c运行时库的scatterload只会拷贝rw段去ram里 不会拷贝代码段到ram里
不知道是不是这样的?
那是不是要自己写代码把中断的代码拷贝到ram里 然后修改向量表里的地址指向ram的代码里面
哪位大神研究过

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.你需要看看分散加载的相关文档

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_BUSD_BUS访问,与总线无关。那个图,可能会误导。

smallcsduck 发表于 2017-10-19 01:33:01

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

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

好吧 我又试了一下 貌似是可以的 把程序放在单独的c文件里 然后把运行域定义在ram里 确实在跑
谢谢
页: [1]
查看完整版本: 有没有大神试过把中断函数放到ram里执行的