SmartARM2300,LPC2378,ADS1.2。
周公给的例程是HIGH和LOW两个互相升级,可实际生产过程中,工人哪里知道你的芯片上面已有的是HIGH还是LOW?所以,还是计划做成单一一个地址空间存放应用程序,通过自己编写的bootloader来引导的并提供在线升级接口。在线升级通过网口的TCP/IP协议栈来完成数据传递。
1 用bootloader引导,需要预先确定应用程序的入口函数首地址,请问通过ADS1.2的分散加载文件,是否可以实现对应用层模块(App.o)的入口函数(AppMain)首地址进行定位?比如将AppMain定义在App.o模块的开始位置?
2 bootloader和App在同一个工程中进行编译,那么每次修改App模块,如何能保证bootloader不会改变?尤其两者之间还需要留有一些交换数据的接口的情况下。
3 bootloader由于已经移植了TCP/IP协议栈,那么希望在App层也能够调用协议栈的相关功能,而不是在App层再移植一个协议栈。这样一来,两个模块都需要有堆栈,那么是不是要为两个模块分别定义堆栈空间?
4 当然,如果大家还有什么好的方案、建议,也可以提出来,如果能够说得详细一些,就更感谢了。 |