hello_tony 发表于 2010-11-9 11:59:50

用过keil uvision的请进

在keil uvision4上用arm写了一个冒泡排序的程序:

                        AREA RESET,CODE,READONLY
                        ENTRY
                       
start       
                                MOV r4,#0
                                LDR r6,=src
                                ADD r6,r6,#len
                               
outer
                                LDR r1,=src
                       
inner
                                LDR r2,
                                LDR r3,
                                CMP r2,r3
                                STRGT r3,
                                STRGT r2,
                                ADD r1,r1,#4
                                CMP r1,r6
                                BLT inner
                               
                                ADD r4,r4,#4
                                CMP r4,#len
                                SUBLE r6,r6,#4
                                BLE outer
                               
stop
                                MOV r0,#0x18
                                LDR r1,=0x20026
                                SWI 0x123456
                               
                        AREA Array,DATA,READWRITE
src            
                                DCD 2,3,10,8,14,1,20
len                         EQU 7*4
                                END       


sct文件:

; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_ROM1 0x00000000 0x00000100{    ; load region size_region
ER_ROM1 0x00000000 0x00000100{; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
}
RW_RAM1 0x00400000 UNINIT 0x00001000{; RW data
   .ANY (+RW +ZI)
}
}


问题是 src标签指的地址为0x400000,但是 DCD 2,3,10,8,14,1,20 分配的这个数组却在大概在0x00000058的位置,所以永远无法获得这些数据。
也就是说数据段怎么规定地址呢?
页: [1]
查看完整版本: 用过keil uvision的请进