打印
[开发工具]

IAR5.4及USB库函数编译问题求助

[复制链接]
4213|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
demeng|  楼主 | 2010-7-20 11:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我在标准的USB例程里新建了一个工程,使用例程里的库函数,开发工具是IAR 5.4,编译时,startup_stm32f10x_cl.s,startup_stm32f10x_ld.s,startup_stm32f10x_hd.s,startup_stm32f10x_md.s会出现以下两种错误:
1. 在每一行的 ***_IRQHandler      [WEAK]   提示Error[0]:Invalid syntax
双击错误提示,鼠标显示在[WEAK]处;
2. Error[40]:bad instruction
请教该如何修改我的工程,谢谢
沙发
janeslee| | 2010-7-20 12:05 | 只看该作者
怎么把各型号的启动文件都加了? 用3.3的库没这问题。

使用特权

评论回复
板凳
demeng|  楼主 | 2010-7-20 13:00 | 只看该作者
对,各型号的都加了,但我在stm32f10x.h中只定义了STM32F10X_MD,可startup_stm32f10x_md.s中同样有错误。我可以把其他三个启动文件删掉,但startup_stm32f10x_md.s中的错误怎么解决呢?

使用特权

评论回复
地板
janeslee| | 2010-7-20 13:12 | 只看该作者
你用的是3.3的库吗?
__vector_table
        DCD     sfe(CSTACK)
        DCD     Reset_Handler             ; Reset Handler
        DCD     NMI_Handler               ; NMI Handler
        DCD     HardFault_Handler         ; Hard Fault Handler
        DCD     MemManage_Handler         ; MPU Fault Handler
        DCD     BusFault_Handler          ; Bus Fault Handler
....
...
;; Default interrupt handlers.
;;
        THUMB

        PUBWEAK Reset_Handler
        SECTION .text:CODE:REORDER(2)
Reset_Handler
        LDR     R0, =RCC_Configuration        ;;SystemInit
        BLX     R0
        LDR     R0, =__iar_program_start
        BX      R0

        PUBWEAK NMI_Handler
        SECTION .text:CODE:REORDER(1)
NMI_Handler
        B NMI_Handler

        PUBWEAK HardFault_Handler
        SECTION .text:CODE:REORDER(1)
HardFault_Handler
        B HardFault_Handler
...
这个没这个错误。

使用特权

评论回复
5
ShakaLeo| | 2010-7-20 13:28 | 只看该作者
"WEEK"貌似是MDK的扩展关键字吧,楼主应该是加错了启动纹件了。在启动文件目录.....IAR Systems\Embedded Workbench 5.4\arm\examples\ST\STM32F10x\stm32f10x_stdperiph_lib\Libraries\CMSIS\Core\CM3\startup
下有三个文件夹,arm  gcc  iar,既然使用IAR就要选择iar文件夹里的startup文件。

使用特权

评论回复
6
demeng|  楼主 | 2010-7-20 13:37 | 只看该作者
我用的库是3.1的
; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp              ; Top of Stack
                DCD     Reset_Handler             ; Reset Handler
                DCD     NMI_Handler               ; NMI Handler
                DCD     HardFault_Handler         ; Hard Fault Handler
                DCD     MemManage_Handler         ; MPU Fault Handler
                DCD     BusFault_Handler          ; Bus Fault Handler
                ...
                ...
__Vectors_End

__Vectors_Size  EQU  __Vectors_End - __Vectors

                AREA    |.text|, CODE, READONLY                        //此行报错Error[40]:Bad instruction

; Reset handler routine
Reset_Handler    PROC                                                //此行报错Error[40]:Bad instruction
                 EXPORT  Reset_Handler             [WEAK]
        IMPORT  __main
                 LDR     R0, =__main
                 BX      R0
                 ENDP                                                //此行报错Error[40]:Bad instruction

; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler     PROC
                EXPORT  NMI_Handler                [WEAK]         //此行报错Error[0]:Invalid syntax
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler          [WEAK]
                B       .
                ENDP

使用特权

评论回复
7
demeng|  楼主 | 2010-7-20 13:51 | 只看该作者
我用的库是STM32_USB-FS-Device_Lib_V3.1.0

使用特权

评论回复
8
demeng|  楼主 | 2010-7-20 14:23 | 只看该作者
确实是我启动文件目录错了,谢了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:路尽隐香处,翩然雪海间

12

主题

37

帖子

1

粉丝