【IAR】Error[Li005] no definition for "__program_start"
来源:互联网 发布:中关村人工智能活动季 编辑:程序博客网 时间:2024/04/20 09:30
在用IAR的高版本编译器对较低版本下建立的进行工程编译的时候会出现以下错误:
Error[Li005] no definition for "__program_start"
这是你需要对stm32f10x_vector.c做一些修改,如下所示:
将原先程序中的
void __program_start( void );
#pragma location = "INTVEC"
/* STM32F10x Vector Table entries */
const intvec_elem __vector_table[] =
{
{ .__ptr = __sfe( "CSTACK" ) },
__program_start,
做如下更改即可正确编译:
void __iar_program_start(void);
#pragma location = "INTVEC"
/* STM32F10x Vector Table entries */
const intvec_elem __vector_table[] =
{
{ .__ptr = __sfe( "CSTACK" ) },
__iar_program_start,
需要注意的是在iar_program_start, 前面一定要有两个下划线!!!
Error[Li005] no definition for "__program_start"
这是你需要对stm32f10x_vector.c做一些修改,如下所示:
将原先程序中的
void __program_start( void );
#pragma location = "INTVEC"
/* STM32F10x Vector Table entries */
const intvec_elem __vector_table[] =
{
{ .__ptr = __sfe( "CSTACK" ) },
__program_start,
做如下更改即可正确编译:
void __iar_program_start(void);
#pragma location = "INTVEC"
/* STM32F10x Vector Table entries */
const intvec_elem __vector_table[] =
{
{ .__ptr = __sfe( "CSTACK" ) },
__iar_program_start,
需要注意的是在iar_program_start, 前面一定要有两个下划线!!!
link通过了,不过debug的时候出现
User Error: Base address of vector table has incorrect alignment, vector base addr = 0x00000864.
好像是说向量表有错。stm32f10x_vector.c里是这样定义的:
const intvec_elem __vector_table[] =
{
{ .__ptr = __sfe( "CSTACK" ) },
__program_start,
NMIException,
HardFaultException,
MemManageException,
BusFaultException,
UsageFaultException,
0, 0, 0, 0, /* Reserved */
SVCHandler,
DebugMonitor,
0, /* Reserved */
PendSVC,
SysTickHandler,
WWDG_IRQHandler,
PVD_IRQHandler,
TAMPER_IRQHandler,
RTC_IRQHandler,
FLASH_IRQHandler,
RCC_IRQHandler,
EXTI0_IRQHandler,
EXTI1_IRQHandler,
EXTI2_IRQHandler,
EXTI3_IRQHandler,
EXTI4_IRQHandler,
DMAChannel1_IRQHandler,
DMAChannel2_IRQHandler,
DMAChannel3_IRQHandler,
DMAChannel4_IRQHandler,
DMAChannel5_IRQHandler,
DMAChannel6_IRQHandler,
DMAChannel7_IRQHandler,
ADC_IRQHandler,
USB_HP_CAN_TX_IRQHandler,
USB_LP_CAN_RX0_IRQHandler,
CAN_RX1_IRQHandler,
CAN_SCE_IRQHandler,
EXTI9_5_IRQHandler,
TIM1_BRK_IRQHandler,
TIM1_UP_IRQHandler,
TIM1_TRG_COM_IRQHandler,
TIM1_CC_IRQHandler,
TIM2_IRQHandler,
TIM3_IRQHandler,
TIM4_IRQHandler,
I2C1_EV_IRQHandler,
I2C1_ER_IRQHandler,
I2C2_EV_IRQHandler,
I2C2_ER_IRQHandler,
SPI1_IRQHandler,
SPI2_IRQHandler,
USART1_IRQHandler,
USART2_IRQHandler,
USART3_IRQHandler,
EXTI15_10_IRQHandler,
RTCAlarm_IRQHandler,
USBWakeUp_IRQHandler,
};
User Error: Base address of vector table has incorrect alignment, vector base addr = 0x00000864.
好像是说向量表有错。stm32f10x_vector.c里是这样定义的:
const intvec_elem __vector_table[] =
{
{ .__ptr = __sfe( "CSTACK" ) },
__program_start,
NMIException,
HardFaultException,
MemManageException,
BusFaultException,
UsageFaultException,
0, 0, 0, 0, /* Reserved */
SVCHandler,
DebugMonitor,
0, /* Reserved */
PendSVC,
SysTickHandler,
WWDG_IRQHandler,
PVD_IRQHandler,
TAMPER_IRQHandler,
RTC_IRQHandler,
FLASH_IRQHandler,
RCC_IRQHandler,
EXTI0_IRQHandler,
EXTI1_IRQHandler,
EXTI2_IRQHandler,
EXTI3_IRQHandler,
EXTI4_IRQHandler,
DMAChannel1_IRQHandler,
DMAChannel2_IRQHandler,
DMAChannel3_IRQHandler,
DMAChannel4_IRQHandler,
DMAChannel5_IRQHandler,
DMAChannel6_IRQHandler,
DMAChannel7_IRQHandler,
ADC_IRQHandler,
USB_HP_CAN_TX_IRQHandler,
USB_LP_CAN_RX0_IRQHandler,
CAN_RX1_IRQHandler,
CAN_SCE_IRQHandler,
EXTI9_5_IRQHandler,
TIM1_BRK_IRQHandler,
TIM1_UP_IRQHandler,
TIM1_TRG_COM_IRQHandler,
TIM1_CC_IRQHandler,
TIM2_IRQHandler,
TIM3_IRQHandler,
TIM4_IRQHandler,
I2C1_EV_IRQHandler,
I2C1_ER_IRQHandler,
I2C2_EV_IRQHandler,
I2C2_ER_IRQHandler,
SPI1_IRQHandler,
SPI2_IRQHandler,
USART1_IRQHandler,
USART2_IRQHandler,
USART3_IRQHandler,
EXTI15_10_IRQHandler,
RTCAlarm_IRQHandler,
USBWakeUp_IRQHandler,
};
需要用5.3版本例程下的stm32f10x_vector.c替换4.4版本的stm32f10x_vector.c
- 【IAR】Error[Li005] no definition for "__program_start"
- IAR错误之Error[Li005] no definition for "__program_start"
- IAR错误之Error[Li005] no definition for "__program_start"
- Error[Li005] no definition for "__program_start"
- Error[Li005] no definition for "__program_start"
- IAR:Error[Li005]:no definition for "Delayn"
- iar Error[Li005] no definition for "assert_failed"
- iar for stm8 报错Error[Li005]: no definition for "assert_failed"解决方案
- Error[Li005]: no definition for "__iar_program_start"
- Error[Li005]: no definition for "__write"
- IAR 提示 Error[Li005]: no definition for ...的错误 的问题的解决方法
- STM32编译出现 Error[Li005]: no definition for "assert_param"
- 使用 STM8L DISCOVERY 示例程序添加库文件出现 Error[Li005]: no definition for XXX 的解决办法
- 在使用IAR编译出现no definition for "__VECTOR_TABLE" __VECTOR_RAM" "__BOOT_STACK_ADDRESS"
- USE_STDPERIPH_DRIVER问题和 iar的no definition for "assert_param"报错
- error CS1061: Type `UnityEngine.Mesh' does not contain a definition for `GetTriangleStrip' and no ex
- IAR for STM8 右键go to definition无法跳转
- 20150812-IAR环境报Fatal Error[Cp001]: Copy protection check, No valid license found for this product
- Android获取文件目录路径
- 杭电1398,1028,1085//赤裸裸的母函数
- Andriod OpenGL 教程 02 - 第一个多边形
- CXF—六天系列—第五天—CXF+Spring配置客户端--HelloWorld!
- CXF—六天系列—第六天—找不到MessageFactoryImpl和BouncyCastleProvider类报错
- 【IAR】Error[Li005] no definition for "__program_start"
- hdu1595
- Android模拟器学framework和driver之battery & backlight-----5. backlight in linux
- 选择原料工厂
- 监视和截获指定进程网络数据传输WSockExpert0.6 工具介绍和使用实例
- hdoj1114
- Unity 官方网站
- 基本文件操作:NSFileHandle的用法
- [java]字符串的拼接问题