分类:
2010-07-22 15:55:11
1. hal/arm/arm9/smdk2410/v3_0/include/pkgconf/mlt_arm_arm9_smdk2410_ram.h
不使用ram,只sdram使用,所以要修改为:
CYGMEM_REGION_ram 起始地址还size都改为0
#define CYGMEM_REGION_ram (0)
#define CYGMEM_REGION_ram_SIZE (0)
CYGMEM_REGION_sram 起始地址为:0x30000000,大小:0x4000000(64MB)
#define CYGMEM_REGION_sram (0x30000000)
#define CYGMEM_REGION_sram_SIZE (0x4000000)
2. hal/arm/arm9/smdk2410/v3_0/include/pkgconf/mlt_arm_arm9_smdk2410_ram.ldi
把ram全部改为sdram,地址相应修改为sdram的地址:
MEMORY
{
ram : ORIGIN = 0, LENGTH = 0
sram : ORIGIN = 0x30000000, LENGTH = 0x4000000
}
SECTIONS
{
SECTIONS_BEGIN
SECTION_fixed_vectors (sram, 0x30000020, LMA_EQ_VMA)
SECTION_rom_vectors (sram, 0x30008000, LMA_EQ_VMA)
SECTION_RELOCS (sram, ALIGN (0x1), LMA_EQ_VMA)
SECTION_text (sram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_fini (sram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_rodata (sram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_rodata1 (sram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_got (sram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_fixup (sram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_gcc_except_table (sram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_data (sram, ALIGN (0x4), LMA_EQ_VMA)
SECTION_bss (sram, ALIGN (0x4), LMA_EQ_VMA)
CYG_LABEL_DEFN(__heap1) = ALIGN (0x8);
SECTIONS_END
}
修改启动方式:
从ram中启动,目前我是通过configtool的方式修改的,通过这种方式也是为了防止产生冲突。
如果查看修改成功成功了:
随便编译一个应用程序,使用命令arm-eabi-objdump,反汇编,然后看reset_vector的地址是不是你修改的地址。
1, 为了方便debug,添加一个控制led的函数。
2, 不需要再初始化sdram和cpu了,只要将hal/arm/arm9/smdk2410/v3_0/include/hal_platform_setup.h中初始化sdram和cpu和cpu的部分去掉就可以了。