共2条
1/1 1 跳转至页
Main 【求助】Main()凼数的定位问题
问
本人欲将C语言的main()凼数编译后固定在一个地址,
即不管程序怎么改main()凼数的入口地址都不会变,
IAR编译器的编译顺序是按什么排序的?如果有办法让main()凼数放在程序的最前面即使后面的
程序改变main()的入口地址也将不会改变,那么本人的愿望也将实现,请多指教!!!!!!!!!!! 答 1: C编译器一般都会把MAIN()的函数放在ROM的最开始端。。 答 2: main()在上电后程序开始运行区,不好改变,你只能定义一个函数,用它代替主函数,然后在主函数在加个跳转指令,定义好新的函数的入口地址,就可以了. 答 3: 问题是我的程序编译后MAIN()凼数不在CODE的开头,我用的工具是
IAR Embedded Workbench 1.26B 版本,让其生成 HEX 格式的文件。 答 4: 这好象不影响吧?连接器会让它自动定位的 答 5: 你在.xcl把-Z(CODE)CODE,TAIVINT=。。。放在前,-Z(CODE)CSTART=。。。放在后,即倒个个,这样MAIN函数就总是从1100开始了 答 6: 谢谢大家的意见,我所作的产品需提供客户进行二次开发的功能,客户程序从串口传入,
然后写在固定的地址(比如从1700h开始),这样就必需是客户的MAIN凼数在最前面,
当要运行这段程序时只需跳转到1700即可. 答 7: 我的PROJECT包含多个C文件,每个C文件包含多个别凼数,说明如下:
一,文件file_a.c
void function_a1(void)
{
//程序代码
}
void function_a2(void)
{
//程序代码
}
二,文件file_b.c
void main(void)
{
//程序代码
}
void function_b1(void)
{
//程序代码
}
二,文件file_c.c
void function_c1(void)
{
//程序代码
}
void function_c2(void)
{
//程序代码
}
程序编译后让其生成 .hex 文件,main()凼数不会在function_a1(),function_b1(),....等凼数的
前面。
现在的问题就是,如果我修改了function_b1(),....等凼数,则MAIN()凼数的地址也会改变。
即不管程序怎么改main()凼数的入口地址都不会变,
IAR编译器的编译顺序是按什么排序的?如果有办法让main()凼数放在程序的最前面即使后面的
程序改变main()的入口地址也将不会改变,那么本人的愿望也将实现,请多指教!!!!!!!!!!! 答 1: C编译器一般都会把MAIN()的函数放在ROM的最开始端。。 答 2: main()在上电后程序开始运行区,不好改变,你只能定义一个函数,用它代替主函数,然后在主函数在加个跳转指令,定义好新的函数的入口地址,就可以了. 答 3: 问题是我的程序编译后MAIN()凼数不在CODE的开头,我用的工具是
IAR Embedded Workbench 1.26B 版本,让其生成 HEX 格式的文件。 答 4: 这好象不影响吧?连接器会让它自动定位的 答 5: 你在.xcl把-Z(CODE)CODE,TAIVINT=。。。放在前,-Z(CODE)CSTART=。。。放在后,即倒个个,这样MAIN函数就总是从1100开始了 答 6: 谢谢大家的意见,我所作的产品需提供客户进行二次开发的功能,客户程序从串口传入,
然后写在固定的地址(比如从1700h开始),这样就必需是客户的MAIN凼数在最前面,
当要运行这段程序时只需跳转到1700即可. 答 7: 我的PROJECT包含多个C文件,每个C文件包含多个别凼数,说明如下:
一,文件file_a.c
void function_a1(void)
{
//程序代码
}
void function_a2(void)
{
//程序代码
}
二,文件file_b.c
void main(void)
{
//程序代码
}
void function_b1(void)
{
//程序代码
}
二,文件file_c.c
void function_c1(void)
{
//程序代码
}
void function_c2(void)
{
//程序代码
}
程序编译后让其生成 .hex 文件,main()凼数不会在function_a1(),function_b1(),....等凼数的
前面。
现在的问题就是,如果我修改了function_b1(),....等凼数,则MAIN()凼数的地址也会改变。
共2条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 【FreeRtos】FreeRtos + MPU模块的配置使用被打赏¥32元 | |
| 【分享开发笔记,赚取电动螺丝刀】墨水屏文本显示器被打赏¥25元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取磁力计iis2mdc被打赏¥19元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取LPS22HH气压、温度被打赏¥19元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX读取STTS751温度被打赏¥17元 | |
| 【STEVAL-STWINKT1B】:结合STMcubeMX软件读取HTS221温湿度被打赏¥22元 | |
| M5PAPERESP32EINKDEVKIT评测|使用MicroPython开发M5Paper被打赏¥15元 | |
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
我要赚赏金
