stm32把bin文件载入ram运行的问题

2019-07-21 05:48发布

请教各位老师,
如果把程序编译成ram运行的bin文件(中断向量表0X20000000,PC->0X2000000?)
然后把bin文件复制到ram的0X20000000->0X2000XXXX,也就是地址一一对应,(父进程的ram是从0X2000XXXX开始分配的,前一段留给bin
文件用)再在父进程的程序中把pc指向ram地址(bin文件开始执行地址)是不是就可以在不硬复位的情况下运行这个bin文件了,理论上是否可行,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
ye781205
1楼-- · 2019-07-21 06:33
就是把原子的这个功能改进,在不复位的情况下执行
正点原子
2楼-- · 2019-07-21 12:00
 精彩回答 2  元偷偷看……
ye781205
3楼-- · 2019-07-21 12:03


 回复【3楼】正点原子:
回复【楼主位】ye781205: --------------------------------- 那你怎么赋值到0X20000000去啊? 默认这个段就是给你自己运行的代码用的,你自己先自杀了,还能拷贝数据么?
---------------------------------
父进程的ram是从0X20000XXX开始分配的,前一段0X20000000--0X20000XXX留给bin
文件用,我测试了,能够复制数据到0X20000000--0X20000XXX,自己运行的代码是可以不用这段的(用汇编很容易实现,pc指针也能跳到ram的指定地址),
就是中断向量表和堆栈不知道怎么处理
或者换个思路,假如有64kb ram,父进程用掉前32kb,用后32kb载入bin并运行(bin运行需要的ram指定它在32kb+bin文件大小处开始)
ye781205
4楼-- · 2019-07-21 16:54
如果搞成功,就能像pc运行绿 {MOD}软件那样运行代码了
正点原子
5楼-- · 2019-07-21 21:01
回复【4楼】ye781205:
---------------------------------
我们的战舰板,综合实验,运行器功能,不就是运行bin文件么?
ye781205
6楼-- · 2019-07-21 22:44
回复【6楼】正点原子:
回复【4楼】ye781205: --------------------------------- 我们的战舰板,综合实验,运行器功能,不就是运行bin文件么?
---------------------------------
两个概念,pc运行程序是否会重启,运行完(退出)之后是否又要重启?????
关键是bin程序退出之后要能返回来又任意加载别的bin文件

一周热门 更多>