共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 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |