当前位置:首页 >> IT/计算机 >>

展讯平台ARM开发环境介绍


2013-7-11

Proprietary and Confidential Information

1

展讯平台ARM开发环境介绍

Spreadtrum 7/11/2013

2013-7-11

Proprietary and Confidential Information

2

培训内容
?基本环境 ?创建工程文件 ?工程设置 ?Scatter File简介 ?AXD Debugger配置 ?Trace32配置

2013-7-11

Proprietary and Confidential Information

3

基本环境
芯片的内核
ARM7TDMI (无浮点,Big Endian):SC6600I/R/H ARM926EJ-S (无浮点,Big Endian):SC6800D

ADS 集成套件 ——V1.2 [Build 848]
CodeWarrior AXD Debugger

Trace32仿真器

2013-7-11

Proprietary and Confidential Information

4

创建工程文件
? 在CodeWarrior中创建一个工程:在File->New-> Project中选择生成 ? ARM/Thumb可执行代码或者库,如下图所示:

2013-7-11

Proprietary and Confidential Information

5

创建工程文件(续1)
根据需要向工程中添加文件:

2013-7-11

Proprietary and Confidential Information

6

工程设置
在[Setting\Target\AccessPath]中设置访问路径(相对路径):

2013-7-11

Proprietary and Confidential Information

7

工程设置(续1)
设置编译/链接选项:
? Target -> Target Settings -> Post-link:总工程必须设为ARM fromELF,否则不会生成可执行的二进制文件

? Language Settings -> … -> Processor:ARM7TDMI / ARM926EJ-S (对于SC6800D平台),包括Thumb C Compiler和ARM Assembler
? Language Settings -> … -> Byte Order:Big Endian (各种语言)

? Language Settings -> … -> ARM/Thumb interworking:要选中
? Language Settings -> … -> Software Stack Check:一般也要选中, 特别是在调试的时候 ? Language Settings -> … -> Enum Container Always Int:要选中

2013-7-11

Proprietary and Confidential Information

8

工程设置(续2)
工程中编译宏的添加:

? _RTOS必须添加;
? 其它宏请参考样本工程格式:-D”宏名称”,如: -DTRACE32_DEBUG,定义了宏TRACE32_DEBUG

2013-7-11

Proprietary and Confidential Information

9

工程设置(续3)
链接和映像文件生成:
? RO/RW分别设置为0x0 / 0x0400_0000 (用于NOR Flash版本)
? 入口点设置为 0x0 ? 配置向量表在入口点位置

? 设置输出文件格式和路径
? 或者使用映像设置文件(Scatter File)。 目前工程设置都使用了Scatter File

2013-7-11

Proprietary and Confidential Information

10

Scatter File 简介
;-----------------------------------------------------------;------------------; ;sc6800 platform scatter file configuration ;--- Memory map ---; ;If you modify this file ,please updata memory map too. ; ; ;Here we have two load region in the config file ; ; ;The first kernel image used to boot up the simplest platform ; ;The second user image used to have applications user defined. ; ;-----------------------------------------------------------;------------------; LOAD_KERNEL_IMAGE 0x0 0x200000 ; ; { ; Read Only region ; ;-----------------------------------------------------------;------------------; EXEC_KERNEL_IMAGE +0 0x200000 ; (10M-16K) bytes ; ; RO Region for ; { ; Code ,RW ,and ; tx_illdb.o (Init, +First) ; const data. ; __main.o(+RO) ; ; * (Region$$Table) ; Table must ; * (ZISection$$Table) ; lies on root ; .any (+RO) ; region ; } ; ; ; ; ;-----------------------------------------------------------;------------------; ; MMU_TABLE 0x00200000 0x4000 ; 16K bytes ; ; { ; for mmu table ; ; if you want modify this address ,please modify mmu.c ; ; ; in drv_sc6800.mcp . ; ; ; } ; ;

2013-7-11

Proprietary and Confidential Information

11

Scatter File 简介(续1)
;-----------------------------------------------------------;------------------; ; 0x00D00000 --- 0x02000000 ; Read Write region; ;-----------------------------------------------------------;------------------; RAM_RW 0x00D00000 0x12EC000 ; ; { ; ; * (+RW, +ZI) ; ; } ; ; ;-----------------------------------------------------------;------------------; ; RAM_RESERVED 0x01FEC000 0x0 ; Reserved for ; ; { ;other applications; ; ; ; ; } ; ; ;-----------------------------------------------------------;------------------; SYS_STACK 0x01FEC000 0x10000 ; 64K bytes ; { ; for the stacks ; ; in mem_cfg_xxx.c file ; ; *(SYS_STACK_AREA) ; ; } ; ;

2013-7-11

Proprietary and Confidential Information

12

Scatter File 简介(续2)
;-----------------------------------------------------------;------------------; ; ; Internal RAM ; ;-----------------------------------------------------------;------------------; IRAM_INT1 0x40004000 0x0D00 ; ; ;Be sure not conflict with fiq handler region ; ; { ; ; ;//threadx region ; ; tx_ti.o (+RW, +ZI) ; ; tx_ts.o (+RO, +RW, +ZI) ; ; tx_deepsleep.o (+RO, +RW, +ZI) ; ; ; ; ;//change frequency ; ; chng_freq_asm.o (+RO, +RW, +ZI) ; ; } ; ; ; ; ; ; RAM_MIDI_SCLIB_RO 0x40005000 0x00002E00 ; ; { ; ; ;midi_sc_api.o (MIDI_SCLIB_RO_AREA) ; ; } ; ; ; ; RAM_MIDI_SCLIB_RW 0x40008000 0x4700 ; ; { ; ; ;midi_sc_api.o (MIDI_SCLIB_RW_AREA, +First) ; ; ;midi_sc_api.o (MIDI_SCLIB_CON_AREA) ; ; } ; ; } ; ; ;-----------------------------------------------------------;------------------; ;

2013-7-11

Proprietary and Confidential Information

13

Scatter File 简介(续3)
;-----------------------------------------------------------;------------------; ; USER image region ; ; Be carefully to put your code in this image ; ; Cause it can't be called when startup ; ;-----------------------------------------------------------;------------------; LOAD_USER_IMAGE 0x00204000 0x00AFC000 ; ; { ; ; EXEC_USER_IMAGE +0x0 0x00400000 ; ; { ; ; *ps.a (+RO) ; ; *tcpip.a (+RO) ; ; *char_lib.a (+RO) ; ; *L4.a (+RO) ; ; *sim.a (+RO) ; ; *bt_pal_csr.a(+RO) ; ; *libcrypto.a (+RO) ; ; *aac_6800.a (+RO) ; ; *midi_sb2m.a (+RO) ; ; *midi64_6800.a (+RO) ; ; *mmi_gui.a (+RO) ; ; } ; ; ; ;

2013-7-11

Proprietary and Confidential Information

14

Scatter File 简介(续4)
EXEC_USER_IMAGE_1 +0x0 0x00400000 { *mmi_app_cstar_dvb.a (+RO)
}

; ; ;
; ;

; ; ;
; ;

; ; ; ; ; ; ; ; ; ; } ; ; ;-----------------------------------------------------------;------------------;

EXEC_USER_IMAGE_2 +0x0 0x002FC000 { *CmsCommon_6800.a (+RO) *CmsBrowser_6800.a (+RO) }

2013-7-11

Proprietary and Confidential Information

15

AXD Debugger 配置
? 选择目标环境
? ? ? ? 配置处理器 选择时钟 选择字节顺序 浮点协处理器

ARMulator.dll
ARM7TDMI / ARM926EJ-S (SC6800D平台) Real-Time BigEndian NO_FPU

? 装入AXF格式的目标文件以及存储器数据文件(如果有) 进行跟踪调试分析,注意memory文件的起始地址 ? 详细内容请参考使用AXD工具专门调试文档

2013-7-11

Proprietary and Confidential Information

16

欢迎您提出宝贵意见和建议!

2013-7-11

Proprietary and Confidential Information

18


赞助商链接
相关文章:
更多相关文章: