我选用的芯片是C6747,二次bootloader程序用C语言编写,那么这个二次bootloader程序里面是否可以有main函数,如何建立C语言环境?谢谢
Tony Tang:
跟平时建C工程一样,C环境初始化函数_c_int00是main之前调用的, 是RTS库里的,用户不用关心。
招财猫了个咪:
回复 Tony Tang:
那二次boot loader 引导程序函数名能否是main 函数
若能,则和用户程序的main函数怎么区分,程序怎么来判断跳转到用户程序的main而不是引导程序的main
若不能,则引导程序从哪开始执行呢?
Tony Tang:
回复 招财猫了个咪:
用C做二级boot,一般只能是两个工程,二级boot一个工程,用户应用程序是一个工程,二个工程之间的函数名没有关系了,可以重名。
另外程序的入口不是main,是C环境初始化函数,默认为_c_int00,其地址可以在编译产生的map文件里看到。
跳到第二个工程的方法是直接把第二个工程的入口地址赋给程序指针就可以了。
*(unsigned int *) entryPoint();
entryPoint就是你要跳转的用户应用程序的地址。