No.43638 作者:ungugu 邮件:ungugu@go.to ID:15586 登陆:4次 文章数:2篇 最后登陆IP:202.94.232.17 最后登陆:2005/6/2 14:32:51 注册:2003/10/20 18:17:54 财富:110 发帖时间:2003/10/20 18:40:20 发贴者IP:210.176.198.213 标题:ungugu:[求助]cstartup_ads.s 在 ARM AT91RM9200 的問題 摘要:No.43638[求助]cstartup_ads.s 在 ARM AT91RM9200 的問題 想在AT91RM9200 踢起 ISO7816跟USB的介面, 我公司没有买ADS 跟Multi-Ice. 但是没办法把example走起來. 那个 startup_ads.S 是用 Thumb 来写的,然后来driver 是用C 写的。 如果不走startup_ads.S, 当 driver accesses的地址 0xFFFFF440会有segmentation fault 我用了arm-linux- 跟 arm-thumb-elf 也没法把它compile… 请指教. ;------------------------------------------------------------------------------ ;- ATMEL Microcontroller Software Support - ROUSSET - ;------------------------------------------------------------------------------ ; The software is delivered "AS IS" without warranty or condition of any ; kind, either express, implied or statutory. This includes without ; limitation any warranty or condition with respect to merchantability or ; fitness for any particular purpose, or against the infringements of ; intellectual property rights of others. ;----------------------------------------------------------------------------- ;- File source : cstartup_boot.arm ;- Object : Generic CStartup ;- Compilation flag : None ;- ;- 1.0 16/03/01 ODi, HI : Creation ARM ADS ;------------------------------------------------------------------------------ ;-------------------------------- ;- ARM Core Mode and Status Bits ;-------------------------------- ARM_MODE_USER EQU 0x10 ARM_MODE_FIQ EQU 0x11 ARM_MODE_IRQ EQU 0x12 ARM_MODE_SVC EQU 0x13 ARM_MODE_ABORT EQU 0x17 ARM_MODE_UNDEF EQU 0x1B ARM_MODE_SYS EQU 0x1F I_BIT EQU 0x80 F_BIT EQU 0x40 T_BIT EQU 0x20 ;------------------------------------------------------------------------------ ;- Stack Area Definition ;----------------------- ;- ;------------------------------------------------------------------------------ IRQ_STACK_SIZE EQU 0xFF FIQ_STACK_SIZE EQU 0x04 ABT_STACK_SIZE EQU 0x04 UND_STACK_SIZE EQU 0x04 SVC_STACK_SIZE EQU 0x04 USER_STACK_SIZE EQU 0x4FF AREA |C$$stack|, DATA ;- IRQ stack definition AT91_IRQ_Stack_End DCD 0x55AA55AA SPACE (IRQ_STACK_SIZE - 4) AT91_IRQ_Stack_Begin EQU (AT91_IRQ_Stack_End + (IRQ_STACK_SIZE - 4)) ;- FIQ stack definition AT91_FIQ_Stack_End DCD 0x55AA55AA SPACE (FIQ_STACK_SIZE - 4) AT91_FIQ_Stack_Begin EQU (AT91_FIQ_Stack_End + (FIQ_STACK_SIZE - 4)) ;- ABORT stack definition AT91_ABT_Stack_End DCD 0x55AA55AA SPACE (ABT_STACK_SIZE - 4) AT91_ABT_Stack_Begin EQU (AT91_ABT_Stack_End + (ABT_STACK_SIZE - 4)) ;- UNDEF stack definition AT91_UND_Stack_End DCD 0x55AA55AA SPACE (UND_STACK_SIZE - 4) AT91_UND_Stack_Begin EQU (AT91_UND_Stack_End + (UND_STACK_SIZE - 4)) ;- SVC stack definition AT91_SVC_Stack_End DCD 0x55AA55AA SPACE (SVC_STACK_SIZE-4) AT91_SVC_Stack_Begin EQU (AT91_SVC_Stack_End + (SVC_STACK_SIZE-4)) ;- USER and SYSTEM stack definition AT91_USER_Stack_End DCD 0x55AA55AA SPACE (USER_STACK_SIZE-4) AT91_USER_Stack_Begin EQU (AT91_USER_Stack_End + (USER_STACK_SIZE-4)) EXPORT AT91_IRQ_Stack_End EXPORT AT91_IRQ_Stack_Begin EXPORT AT91_FIQ_Stack_End EXPORT AT91_FIQ_Stack_Begin EXPORT AT91_ABT_Stack_End EXPORT AT91_ABT_Stack_Begin EXPORT AT91_UND_Stack_End EXPORT AT91_UND_Stack_Begin EXPORT AT91_SVC_Stack_End EXPORT AT91_SVC_Stack_Begin EXPORT AT91_USER_Stack_End EXPORT AT91_USER_Stack_Begin ;------------------------------------------------------------------------------ ;- Area Definition ;----------------- ;- Must be defined as function to put first in the code as it must be mapped ;- at offset 0 of the flash EBI_CSR0, ie. at address 0 before remap. ;------------------------------------------------------------------------------ AREA reset, CODE, READONLY ; IMPORT __use_no_semihosting_swi ;------------------------------------------------------------------------------ ;- Define the entry point ;------------------------ EXPORT __ENTRY __ENTRY ;------------------------------------------------------------------------------ ;- Exception vectors ( before Remap ) ;------------------------------------ ;- These vectors are read at address 0. ;- They absolutely requires to be in relative addresssing mode in order to ;- guarantee a valid jump. For the moment, all are just looping (what may be ;- dangerous in a final system). If an exception occurs before remap, this ;- would result in an infinite loop. ;------------------------------------------------------------------------------ B InitReset ; reset undefvec B undefvec ; Undefined Instruction swivec B swivec ; Software Interrupt pabtvec B pabtvec ; Prefetch Abort dabtvec B dabtvec ; Data Abort rsvdvec B rsvdvec ; reserved irqvec ldr pc, [pc,#-0xF20] ; IRQ : read the AIC fiqvec B fiqvec ; FIQ ;------------------- ;- The reset handler ;------------------- InitReset ;---------------------------- ......
>>返回讨论的主题
|