下午没说完就发了,继续. 具体点说, 我本来的想法是BANK0中的程序可以部分更新, 但想来想去觉得不是很可行. 于是我想把一些常用的功能(例如串口读写, USB, 甚至以太网等等)放到BANK1中, 而BANK0中只有与硬件无关的应用, 如果想访问硬件, 就通过调用BANK1中的特定地址的函数进行例如读写串口. 那么我现在就可以尽量减少BANK0中应用程序的体积, 利于窄带网络的远程更新. 现在的问题是: 我编译好了BANK1的程序后, 例如里面有一个函数写串口, 现在有2各问题, 一是我在写BANK0应用程序的时候如何得到这个函数的入口? 象PC机的DOS调用所有函数通过一个统一的入口地址来转吗? 二是我在编译BANK1中的程序时, 我想BANK1应该作为启动块,地址是0, 而执行BANK0中的应用程序时, BANK1作为非启动块影射到0X80000000, 那么即使第一个问题解决了, 那么原来的函数地址都已经发生了变化, 特别是中断服务程序, 这个问题能不能解决?
|