初段——2440地址空间理解和jlink烧写SRAM
来源:互联网 发布:国外期刊 数据库 编辑:程序博客网 时间:2024/06/08 13:03
对于一个习惯51,AVR,对于理解程序下载在什么地方,执行时又是在那个地址所带来的安全感是开发的开始。2440仅仅是一快ARM9的处理器内部内有ROM,而ram也少的可怜(4K的Boot SRAM),因而需要在其外部挂上储存芯片,而2440分8个部分的外接储存设备接口,每个接口的地址已经固定且最大不能超过128M。
2440支持两种启动模式:
启动模式通过管脚电平设定,所以在上电之前其启动模式已经设定好。
1、Nand启动:上电,硬件立即从外部的nand flash 的前4K拷贝到SRAM中,地址0x0000为SRAM的0地址开始,及上电时cpu的主控权完全交给BootInternalSRAM (4KB),至于要把nand flash中的内容复制到SDRAM还是点亮一个LED就看你怎么编写。
2、nor启动: 0地址指向nor flash的0地址而非sram的0地址,上电cpu从0地址执行。
上电之前确定2440的启动模式后所有的储存设备的物理地址就已经确定,其执行各个设备的地址同时也已经确定。烧写地址和执行时的设备地址一样,烧写不过是利用jlink、h-link等把二进制文件烧写烧对应的地址address内,address为设备地址既保持该二进制文件的地址,你需要注意address的地址是否指向你要的设备,还有该设备是否需要擦除。
以下是我烧写用jlinkled流水灯到jz2440的程序:
step1:关看门狗,默认看门狗是开的
disable_watch_dog:
@ 往WATCHDOG寄存器写0即可
mov r1, #0x53000000
mov r2, #0x0
str r2, [r1]
mov pc, lr @ 返回
step2:设置寄存器的值便于使用Bank6外接的SDRAM可以不要,流水灯程序很小boot internnal SRAM空间足够了
mem_cfg_val:
@ 存储控制器13个寄存器的设置值
.long 0x22011110 @ BWSCON
.long 0x00000700 @ BANKCON0
.long 0x00000700 @ BANKCON1
.long 0x00000700 @ BANKCON2
.long 0x00000700 @ BANKCON3
.long 0x00000700 @ BANKCON4
.long 0x00000700 @ BANKCON5
.long 0x00018005 @ BANKCON6
.long 0x00018005 @ BANKCON7
.long 0x008C07A3 @ REFRESH
.long 0x000000B1 @ BANKSIZE
.long 0x00000030 @ MRSRB6
.long 0x00000030 @ MRSRB7
step3:跳转到C语言的main()中、main为流水灯
bl main
Step4生产编译链接生成bin文件
Step5利用jlink commander烧写bin到address 0x00 内 (注意是nand启动)
jlink执行的命令
1、h
2、loadbinC:\Users\Michael\Desktop\sdram\leds.bin 0x00 (如果是nor启动则是 ox40000000)
3、setpc ox00(如果是nor启动则是 ox40000000)
4、g
记住启动时nan 和nor是 其地址会不同一定要弄明白下表在写代码:
源文档 <http://blog.csdn.net/chinalj2009/article/details/12349163>
- 初段——2440地址空间理解和jlink烧写SRAM
- JLink烧写2440的NOR配置
- JLINK烧写步骤
- Jlink烧写问题
- Jlink 烧写Uboot
- 使用jlink烧写HI3518
- 使用jlink烧写uboot
- 使用破解版的JLink实现对开发板上的外部Nor Flash的烧写 + JLink V4.08k 下载地址
- 可重入内核和进程地址空间--深入理解linux内核
- ARM链接地址和烧写地址
- ARM 链接地址和烧写地址
- Ubuntu13.04使用Jlink和ST-Link V2烧写STM32F1x和STM32F4x
- 使用JLink对STR711烧写FLASH
- 海思3515用jlink烧写uboot
- jlink 调试 ;uboot 修改、编译、烧写;
- 无jlink的裸机烧写程序
- arm9(s3c2440)jlink烧写uboot
- Jlink for Linux之烧写
- HDU 3694Fermat Point in Quadrangle(三分 不过网上大多是费马点的题解)
- Java获取网页源代码
- 【Rails】有关TDD测试入门
- 大数减法
- 一个骰子,6面,1个面是 1, 2个面是2, 3个面是3,问平均掷多少次能使1、2、3都至少出现一次。
- 初段——2440地址空间理解和jlink烧写SRAM
- makefile 中常见变量及函数
- sizeof()的()中算术运算不改变变量的值
- 基于结构;基于对象;面向对象;基于接口四种C++编程思想的实例分析
- windows命令行查看端口占用
- (poj1.1.3)1326(直叙式模拟)
- JAVA初学之异常处理
- 【黑马程序员】C#之继承
- dpkg: error processing /var/cache/apt/archives/binutils-msp430_2.22~msp20110716p5-1_i386.deb