这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 物联网技术 » 讨论:单片机程序没有main函数可以运行吗?

共2条 1/1 1 跳转至

讨论:单片机程序没有main函数可以运行吗?

助工
2014-03-23 00:13:17     打赏

前几天做了一个单片机bootloader的程序,遇到一个想不通的处理方法!老大非得要我这么做,思路是这样的:

    LPC1768单片机,程序分为boot区和app(应用程序区),上电后boot启动,等待2s,如果有升级指令,进入网络接收数据循环。如果没有升级指令,判断app是否存决定是否跳转到APP程序。跳转到APP后,APP程序里面检测升级指令,如果有升级指令,则直接跳转到boot的main函数里面的网络接受数据函数( ProcessNetDataRcv()       ,进入数据接收状态!!

    现在的问题是,boot跳转到APP后,boot中的全局变量,还有静态变量函数等等都消亡掉了,再次从APP直接跳转到boot的ProcessNetDataRcv()函数,是怎么可能做到呢?也就是说,没有main支持入口也能运行起来吗?我的ProcessNetDataRcv函数也需要boot中的一些全局变量,但是据我所知,全局变量的产生是在单片机上电后进入main之前生成并初始化的,现在没有跳转到main的开始处,而是要直接跳转到main里面的函数,搞不懂怎么搞的!我用的编译器是   IAR6.3    芯片是LPC1768

我也看了很多IAR上电步骤之类,但是很少提到这一点,有人说用函数的绝对地址,我试过不行,程序会跑飞,想想没有全局变量等支持跑飞也是应该的啊!

有人也说需要将单片机的入口main函数修改成ProcessNetDataRcv函数,这样单片机就能在没有main就能执行,可是问题是我不知道该在哪里修改这个入口,就算是修改了,那我想上电的时候从main开始执行,但是从APP跳转到boot后又是从ProcessNetDataRcv函数开始执行,这到底需要怎么做?我想要了解具体的修改方法最好




关键词: LPC1768     单片机     bootloader     ma    

助工
2014-03-25 22:20:51     打赏
2楼
就是不知道该怎么设置会比较好

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]