LPC2210(2)

来源:互联网 发布:java 获取跳转后的url 编辑:程序博客网 时间:2024/06/02 06:04

看了一下CodeWarrior for ARM Developer Suite自带的Example,发现ZLG有很多东西是参考这些个例子来写的。在[你的安装目录]/ARM/ADSv1_2/Examples/embedded/embed中的vectors.s文件里有以下几句汇编

;;; Copyright ARM Ltd 2001. All rights reserved.

 

        AREA Vect, CODE, READONLY

 

; These are example exception vectors and exception handlers

;

; Where there is ROM fixed at 0x0 (build_b), these are hard-coded at 0x0.

; Where ROM/RAM remapping occurs (build_c), these are copied from ROM to RAM.

; The copying is done automatically by the C library code inside __main.

 

; *****************

; Exception Vectors

; *****************

 

; Note: LDR PC instructions are used here, though branch (B) instructions

; could also be used, unless the ROM is at an address >32MB.

 

        ENTRY

 

        LDR     PC, Reset_Addr

        LDR     PC, Undefined_Addr

        LDR     PC, SWI_Addr

        LDR     PC, Prefetch_Addr

        LDR     PC, Abort_Addr

        NOP                             ; Reserved vector

        LDR     PC, IRQ_Addr

        LDR     PC, FIQ_Addr

       

        IMPORT  Reset_Handler           ; In init.s

       

Reset_Addr      DCD     Reset_Handler

Undefined_Addr  DCD     Undefined_Handler

SWI_Addr        DCD     SWI_Handler

Prefetch_Addr   DCD     Prefetch_Handler

Abort_Addr      DCD     Abort_Handler

IRQ_Addr        DCD     IRQ_Handler

FIQ_Addr        DCD     FIQ_Handler

ZLGARM Executable Image for lpc2200模板生成的Startup.s文件里也有类似的汇编语句

;interrupt vectors

;中断向量表

Reset

        LDR     PC, ResetAddr

        LDR     PC, UndefinedAddr

        LDR     PC, SWI_Addr

        LDR     PC, PrefetchAddr

        LDR     PC, DataAbortAddr

        DCD     0xb9205f80

        LDR     PC, [PC, #-0xff0]

        LDR     PC, FIQ_Addr

 

ResetAddr           DCD     ResetInit

UndefinedAddr       DCD     Undefined

SWI_Addr            DCD     SoftwareInterrupt

PrefetchAddr        DCD     PrefetchAbort

DataAbortAddr       DCD     DataAbort

Nouse               DCD     0

IRQ_Addr            DCD     0

FIQ_Addr            DCD     FIQ_Handler

 

 

发现CodeWarrior for ARM Developer Suite的一个很好的特性,可以用printf,这个可比CodeWarrior Development Studio for HC08感觉好,以前第一次用08的时候想用printf却不行,如果每记错的话好像是报错的。所以要观察什么数据的话还要写到内存里去看,现在就比较方便了,直接printf就可以了

 

观察了一下ZLG为自己的芯片做的模版,发现自己也可以做一个只要建立一个工程,并往自己的工程文件里添加相应的启动代码等一些必要的配置文件(可以参考ZLG的那些文件),然后再到自己建立的工程里面把[工程名]_data这个文件夹删掉,然后另建一个文件夹,把工程文件夹里其他的文件拷贝到新建的文件夹里,并把这个文件夹放到

[你的安装目录]/ARM/ADSv1_2/Stationery文件夹下,这样用CodeWarrior for ARM Developer Suite新建工程的时候就会有你自己制作的模版了

 

有点想为LPC2210写一个头文件,因为以前用GP32或者GT60的时候只要include一个对应于芯片的头文件就可以了,比较简单。ZLG的模版里好像没有类似的头文件。

在看Example的时候,无意间看到以下代码

原创粉丝点击