u-boot移植总结(二)LED点灯调试 和 u-boot加载地址
来源:互联网 发布:国际数据分析师认证 编辑:程序博客网 时间:2024/03/28 19:45
(一)LED点灯调试
FL2440电路总共有4个LED0,LED1,LED2,LED3,分别接到板子GPB5,GPB6,GPB8,GPB10引脚。通过设置三个寄存器GPBCON(0x56000010),GPBDAT(0x56000014),GPBUP(0x56000018),控制GPB[10:0]引脚可控LED的亮灭。
控制LED亮灭有三步:
1,设置GPB5,GPB6,GPB8,GPB10为输出工作方式,即GPBCON [21:20] = 01 GPBCON [17:16] = 01,GPBCON [13:12] = 01,GPBCON [11:10] = 01
2,GPBUP置0000 0101 0110 0000 即GPB5,GPB6,GPB8,GPB10皆禁止使能上拉
3,设置GPBDAT寄存器,低电平LED亮
例子:
#define GPBCON 0x56000010/*设置GPB5,GPB6,GPB8,GPB10工作方式*/
#define GPBDAT 0x56000014 /*输出端口,控制LED亮灭*/
#define GPBUP 0x56000018 /*禁止使能上拉*/
ldr r0, =GPBCON /*Set GPIO5, GPIO6, GPIO8, GPIO10 as GPIO OUTPUT mode */
ldr r1, [r0]
ldr r1, =0x00295550
str r1, [r0]
ldr r0, =GPBUP /*Set bit 5,6,8,10, disable pullup resister*/
ldr r1, [r0]
orr r1, r1, #0x0560 /*0000 0101 0110 0000 */
str r1, [r0]
ldr r2, =GPBDAT
ldr r3, [r2]
orr r3, r3, #0x0540 /*Set bit 6,8,10 as high level and bit 5 as low, Turn On LED0*/
str r3, [r2]
以下附上部分原理图,具体参考s3c2440的datasheet,以及fl2440电路原理图
(二)u-boot加载地址
基于FL2440板子,配有64M的SDRAM,并且挂载到nGCS6(0x3000 0000),所以64M的SDRAM
寻址范围:0x3000 0000 – 0x3400 0000。
在我修改 u-boot-2010.09/board/lingyun/ly2440/config.mk文件如下:
# (C) Copyright 2002# Gary Jennejohn, DENX Software Engineering, <garyj@denx.de># David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>## SAMSUNG SMDK2410 board with S3C2410X (ARM920T) cpu## see http://www.samsung.com/ for more information on SAMSUNG### SMDK2410 has 1 bank of 64 MB DRAM## 3000'0000 to 3400'0000## Linux-Kernel is expected to be at 3000'8000, entry 3000'8000# optionally with a ramdisk at 3080'0000## we load ourself to 33F8'0000## download area is 3300'0000TEXT_BASE = 0x33F80000
总结:
1,Linux系统自启过程中,u-boot默认加载到 0x33f8 0000运行, Linux-Kernel则默认加载到0x3000 8000运行。
2,用J-TAG调试阶段,u-boot临时下载到0x33f8 0000运行。
3,在移植阶段,需把u-boot和Linux-Kernel烧写到NANDFLASH,但是不能直接烧写。所以先TFTP下载到内存,
再由内存下载到NANDFLASH,因此临时下载到0x3000 8000地址,并且不会覆盖已经运行的u-boot(通过J-TAG
下载到地址0x33f8 0000运行,由0x3000 8000到0x33f8 0000 为15M空间,本次u-boot和Linux-Kernel大小都小于15M)
4,总之,移植过程J-TAG下载阶段借用0x33f8 0000地址下载;TFTP下载阶段借用0x3000 8000地址下载。
也可以用其他地址临时烧写,但是必须保证不能冲突,覆盖已经运行的u-boot。
- u-boot移植总结(二)LED点灯调试 和 u-boot加载地址
- u-boot移植总结(二)
- u-boot移植随笔:自定义u-boot命令点灯
- u-boot移植(二)
- U-boot移植(二)
- U-BOOT移植总结
- u-boot 移植 总结
- U-Boot移植总结
- u-boot-2013.01.01移植(二)
- u-boot-2010.09移植(二)
- TQ335X的u-boot移植(二)
- u-boot-2010.09移植(二)
- U-BOOT移植总结(三)
- 为u-boot-2016 for tiny4412添加点灯调试代码
- u-boot移植随笔:u-boot技巧二则
- U-boot分析与移植(5)----U-boot移植
- U-boot分析与移植(5)----U-boot移植
- U-boot分析与移植(5)----U-boot移植
- C++关注备注部分知识点
- 微信公众平台接口程序聊天功能
- shell 调用 sqlplus 各种情况示例
- 使用nohup让程序在远程主机后台运行
- 工作记录---pcap_pkthdr结构详解
- u-boot移植总结(二)LED点灯调试 和 u-boot加载地址
- 通过金矿模型介绍动态规划
- C#弱类型Dataset和强类型Dataset
- beta分布
- 通过金矿模型介绍动态规划
- 用Jsoup进行链接提取
- 文件映射内存使用方法
- Thread Local Storage
- 通过金矿模型介绍动态规划