共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 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 基于MCP23S17的输入输出功能模块控制被打赏¥20元 | |
| 【S32K3XX】SPD 软件包使用Link文件修改被打赏¥22元 | |
| Switch-Case局部变量定义问题被打赏¥23元 | |
| 基于米尔TIAM62L开发板的串口通信及应用被打赏¥20元 | |
| PCF8574功能模块及其使用被打赏¥20元 | |
| 传感器LSM6DSO及LIS3MDL的功能检测被打赏¥18元 | |
| LPS25HB气压传感器及其检测被打赏¥18元 | |
| HTS221温湿度传感器及其检测被打赏¥18元 | |
| 【S32K3XX】HSE FW 版本更新被打赏¥21元 | |
| 基于ArduinoUNO开发板的AT24C02读写测试被打赏¥16元 | |
我要赚赏金
