博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【IAR】Error[Li005] no definition for "__program_start"
阅读量:4110 次
发布时间:2019-05-25

本文共 1912 字,大约阅读时间需要 6 分钟。

在用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, 前面一定要有两个下划线!!!
 
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,
};
需要用5.3版本例程下的stm32f10x_vector.c替换4.4版本的stm32f10x_vector.c

转载地址:http://fdlsi.baihongyu.com/

你可能感兴趣的文章
facebook库runtime.js
查看>>
vue2.* 中 使用socket.io
查看>>
openlayers安装引用
查看>>
js报错显示subString/subStr is not a function
查看>>
高德地图js API实现鼠标悬浮于点标记时弹出信息窗体显示详情,点击点标记放大地图操作
查看>>
初始化VUE项目报错
查看>>
vue项目使用安装sass
查看>>
HTTP和HttpServletRequest 要点
查看>>
HttpServletResponse 要点
查看>>
Qt中的QString和QStringList常用方法
查看>>
Quick QML 一个QML调用另一个文件夹下的QML方法
查看>>
leetcode----63. Unique Paths II
查看>>
leetcode----89. Gray Code
查看>>
leetcode----90. Subsets II
查看>>
leetcode----91. Decode Ways
查看>>
leetcode----92. Reverse Linked List II
查看>>
leetcode----93. Restore IP Addresses
查看>>
leetcode----94. Binary Tree Inorder Traversal
查看>>
leetcode----96. Unique Binary Search Trees
查看>>
leetcode----95. Unique Binary Search Trees II
查看>>