导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[ungugu][求助]cstartup_ads.s 在



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

;---------------------------- ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:29毫秒 最大:78531毫秒 查询6次