S3C6410的u-boot移植

合集下载

《嵌入式系统和开发》测试题---答案

《嵌入式系统和开发》测试题---答案

(1)ARM汇编程序由(2)ARM(3)假设存储数据0x12345678于ARM微处理器内存0X30000000开始的位置,则0X30000001内存位置的数据为_C____(A.0X12 B.0X34 C.0X56 D.0X78)(采用小端模式进行存储)(4)一般情况下,ARM微处理器异常处理模式共有___7___种,机器启动后第一条指令执行的是__A___(A.复位异常处理函数指令B.中断异常处理指令C.IRQ异常处理指令D.指令预取终止异常)。

(5)调用函数FUN(X,Y,Z),则实参值分别通过__r0__、_r1___、_r2__寄存器来进行传递,如果参数超过4个,则参数传递规则为____通过栈进行传递________。

(6)举例列出一款ARM7TDMI微内核的嵌入式微处理器_S3C44B0X_,ARM920T微内核的嵌入式微处理器_S3C2410_,ARM11内核的嵌入式微处理器__S3C6410____,并列举2款64位ARM微内核_Cortex-A53__、__Cortex-A57________。

(7)利用汇编和C混合编程,设计代码完成求a,b,c中最大值功能,要求写出汇编启动代码和C代码。

(略)此知识点不需要掌握测试题1及参考答案1.嵌入式Linux操作系统包括bootloader 、内核、文件系统三部分组成。

2.在PC机上Linux系统编译使用的编译器名为gcc,ARM处理器嵌入式编译器名为arm-linux-gcc。

3.bootloader的功能:①引导操作系统内核启动②提供辅助命令工具。

4.列出最常用的bootloader:、、、、、。

5.在uboot中,打印开发板上环境变量值的命令为printenv ,设置IP地址为192.168.1.1的命令为setenvipaddr 192.168.1.1,假如嵌入式内核名为vmlinux,通过tftp加载内核的命令为tftpvmlinux 内存地址,启动嵌入式Linux内核的命令为bootm。

Tiny6410_Uboot移植步骤详解

Tiny6410_Uboot移植步骤详解

#include <config.h> #include <asm/arch/s3c6400.h>
.globl mem_ctrl_asm_init mem_ctrl_asm_init:
/* DMC1 base address 0x7e001000 */ ldr r0, =ELFIN_DMC1_BASE
#tar xzvf u-boot-gxb.tar.gz
二:在顶层的目录下找到 Makefile 文件,并用 gedit
打开
在 Makefile 中找到下面代码进行修改
########################################################################
else
\
echo
"RAM_TEXT
=
0xc7e00000"
$(obj)board/samsung/tiny6410/config.tmp;\
fi
@$(MKCONFIG) tiny6410 arm arm1176 tiny6410 samsung s3c64xx
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk
ldr r1, =DMC_DDR_t_RFC ldr r2, =DMC_DDR_schedule_RFC orr r1, r1, r2 str r1, [r0, #INDEX_DMC_T_RFC]
ldr r1, =DMC_DDR_t_RP ldr r2, =DMC_DDR_schedule_RP orr r1, r1, r2 str r1, [r0, #INDEX_DMC_T_RP]

广州友善之臂计算机 Tiny6410 硬件说明手册

广州友善之臂计算机 Tiny6410 硬件说明手册

Tiny6410 硬件说明手册版本:2011-3-22(本手册正在不断更新中,建议您到网站下载最新版本)copyright@2010版权声明本手册版权归属广州友善之臂计算机科技有限公司(以下简称“友善之臂”)所有, 并保留一切权力。

非经友善之臂同意(书面形式),任何单位及个人不得擅自摘录本手册部分或全部,违者我们将追究其法律责任。

敬告:在售开发板的手册会经常更新,请在网站查看最近更新,并下载最新手册,不再另行通知。

更新说明:日期说明2011-3-22 1.Tiny6410核心板版本升级为1107,新增CON1和CON2两个排针,包含CMOS 摄像头接口和更多的GPIO2.Tiny6410开发参考底板版本变更为1103版本-增加SCON接口(串行口总汇)-增加USB HUB,现有3个USB Host接口-SD卡座改为弹出式-去掉了1个DB9串口座2011-1-3 增加了Tiny6410核心板引脚定义说明,见1.1.2章节2010-11-26 本文档首次发布,任何问题可以请反馈至capbily@目录Tiny6410 硬件说明手册 ................................................................................................................................. - 1 -第一章Tiny6410开发板介绍............................................................................................................................. - 5 -1.1 Tiny6410核心板接口说明..................................................................................................................... - 5 -1.1.1 Tiny6410核心板资源特性 .......................................................................................................... - 6 -1.1.2 Tiny6410核心板引脚定义 .......................................................................................................... - 7 -1.1.3 机械尺寸图 ............................................................................................................................... - 10 -1.2 Tiny6410SDK底板接口资源简介 ........................................................................................................ - 11 -1.2.1 Tiny6410SDK开发板简介 ......................................................................................................... - 11 -1.2.2 系统内存分配图 ....................................................................................................................... - 13 -1.3 开发底板接口说明 ............................................................................................................................ - 13 -1.3.1 电源接口和插座 ....................................................................................................................... - 13 -1.3.2 串口 ........................................................................................................................................... - 14 -1.3.3 USB Host接口............................................................................................................................ - 15 -1.3.4 USB Slave接口........................................................................................................................... - 15 -1.3.5 SCON接口.................................................................................................................................. - 16 -1.3.6 网络接口 ................................................................................................................................... - 17 -1.3.7 音频接口 ................................................................................................................................... - 17 -1.3.8 电视输出口 ............................................................................................................................... - 17 -1.3.9 JTAG接口................................................................................................................................... - 18 -1.3.9 用户LED.................................................................................................................................... - 19 -1.3.10 用户按键 ................................................................................................................................. - 19 -1.3.11 LCD接口 .................................................................................................................................. - 20 -1.3.12 ADC输入 .................................................................................................................................. - 21 -1.3.13 PWM控制蜂鸣器..................................................................................................................... - 21 -1.3.14 温度传感器 ............................................................................................................................. - 22 -1.3.15 红外接收 ................................................................................................................................. - 22 -1.3.16 I2C-EEPROM........................................................................................................................... - 22 -1.3.17 SD卡 ......................................................................................................................................... - 23 -1.3.18 SDIO-II/SD-WiFi接口 ............................................................................................................. - 23 -1.4软件资源特性 ..................................................................................................................................... - 24 -1.4.1 Linux系统资源特性................................................................................................................... - 24 -1.4.2 WindowsCE 6.0系统资源特性 ................................................................................................. - 26 -1.4.3 Android系统资源特性 ............................................................................................................... - 27 -1.4.4 Ubuntu系统特性 ........................................................................................................................ - 28 -第一章Tiny6410开发板介绍1.1 Tiny6410核心板接口说明Tiny6410是一款以ARM11芯片(三星S3C6410)作为主处理器的嵌入式核心板,该CPU 基于ARM1176JZF-S核设计,内部集成了强大的多媒体处理单元,支持Mpeg4, H.264/H.263等格式的视频文件硬件编解码,可同时输出至LCD和TV显示;它还并带有3D图形硬件加速器,以实现OpenGL ES 1.1 & 2.0加速渲染,另外它还支持2D图形图像的平滑缩放,翻转等操作。

基于S3C6410的U-boot分析与移植

基于S3C6410的U-boot分析与移植
B o o d r 文 中分析 了 ub o 的 启 动 流 程 并 详 细 阐述 了将 其 移 植 到 当前 应 用十 分 广 泛 的 基 于 高性 能 处 理 器 A Ml of ae。 l .o t R 1 的 t6 1 q 4 0板 的过 程 .为 从 更 高抽 象层 使 用 目标 板 作 充 分 准 备 。
7期 第2 O卷 第 1
V0 .0 1 2
No 1 .7
Байду номын сангаас
电子设计 工程
El cr n c De in En i e rn e to i sg g n e i g
21 0 2年 9月
S p.2 2 e 01
基于 ¥ C 4 0的 Ub o 3 61 .o t分析 与移植
C U 速 度 和 时钟 频 率 、 A 初 始 化 、 E 初 始 化 、 关 闭 C U P R M LD P
由 于 B o odr 设 计 依 赖 于 C U 的 体 系 结 构 和 具 体 ot ae 的 l P
U. o ta ay i a d ta s ln a in b s d o 3 4 O b o n lss n r n p a t t a e n S C6 1 o
Z HOU in c a g IZ e —ig Ja —h n ,L h n xn
(/a nvri co lfI om t nad Tcnqe, unh u5 0 3 ,C ia J nU i s ySh o o n r ai n eh iu G azo 1 62 hn ) n e t f o
Ke o d: R ; 3 6 1 ; Q 40 ubo;r sl t yw rs A M1 ¥ C 4 0 T 6 1 ; —ot t pa 1 n a n

Uboot_for_mini6410_移植步骤详解

Uboot_for_mini6410_移植步骤详解

这是u-boot-2010.09 针对友善之臂MINI6410移植的最基础版本,只包含了就基本的系统引导,NAND读写,DM9000网卡等等。

但是这个足够开发的方便使用。

今后会陆续添加原先我为mini2440添加的所有功能。

但是此次移植并非我的功劳,首先基本的移植是由Alex Ling <kasimling at >完成的,你可以在这里看到他提交的补丁,但是编译后无法使用,可能是因为host系统不同,对脚本的解析不同,使得spl部分的生成出现问题,只需修改一下nand_spl目录下目标板目录的中config.mk中的PAD_TO := $(shell expr $$[$(TEXT_BASE) + 4096])即可。

DM9000的驱动没有太大的问题(修改了一点可能出现问题的地方,感谢肖工指教),但是原本的u-boot并没有调整所有SROM控制器的配置(其中包括连接DM9000所使用的bank1的总线),我使用了友善带的u-boot的参数配置了一下就好了。

一:/batch.viewlink.php?itemid=1694ftp://ftp.denx.de/pub/u-boot/去这2个网站随便下载都可以下载得到最新或者你想要的u-boot。

现在我将下载u-boot-2010-09,这个也就是最新的版本啦。

下载后把它解压,然后得到u-boot-2010-09的文件夹,然后进去,并且做下面几件事情:1:进入arch这个文件夹,把出arm外的前部文件夹删掉2:进入board这个文件夹,把除samsung外前部文件夹删掉3:进入include/configs,把除smdk6400.h外的所有文件删除。

4: 把顶层目录下有一个叫onenand_ipl的文件夹删除掉,因为没有用到。

5:进入nand_spl/board,把除samsung外全部文件删除掉。

6:再进入arch/arm/cpu文件夹,把除arm1176外其他文件夹删除掉。

三星S3C6410用户手册中文版

三星S3C6410用户手册中文版

2.ARM1176JZFARM1176JZF-S 处理器 ARM1176JZF-S 处理器的特性包括: (1)TrustZone™安全扩展。 (2)具有超高速先进的微处理器总线架构(AMBA) 、先进的可扩展接口(AXI)电平,两个接口支持 的优先级顺序多处理机。 (3)8 阶管线。 (4)具有返回堆栈的分支预测。 (5)低中断延时配置。 (6)外部协处理器接口和协处理器 CP14 和 CP15 。
7.IrDA v1.1 IrDA v1.1 特性包括: (1)专用的 IrDA 作为 v1.1( 1.152Mb/s 和 4 Mb/s )。 (2)支持 FIR( 4Mb/s )。 (3)SIR( 111.5kb/s )模式是由 UART 的 IrDA 1.0 模块支持的。 (4)内部 64 字节的 Tx/Rx FIFO。 串行通行特性: (1)UART 4 通道 UART 具有基于 DMA 或基于中断操作。 支持 5 位, 6 位, 7 位,或 8 位串行数据传输/接收。
8.调制解调器接口 调制解调器接口特性包括: 并行调制解调器芯片接口 异步直接和间接 16 位 SRAM 式接口(i80 接口)。 片上 8KB 的双端口 SRAM 缓冲区直接接口。 片上写 FIFO 和读 FIFO (每 288 字),以支持间接脉冲数据传输。
9.GPIO GPIO 特性包括: 188 个灵活配置的 GPIO。 输入设备特性: (1)便携式键盘接口 支持 8×8 键盘矩阵转换电路。 提供内部去抖滤波器。 (2)A/D 转换和触摸屏接口 8 通道复用 ADC。 最大 500k 采样/S 和 10 位分辨率。
第一章
S3C6410 处理器概述
S3C6410 是一个 16/32 位 RISC 微处理器,旨在提供一个具有成本效益、功耗低,性能高的应用处理器 解决方案,像移动电话和一般的应用。它为 2.5G 和 3G 通信服务提供优化的 H /W 性能, S3C6410 采用了 64/32 位内部总线架构。该 64/32 位内部总线结构由 AXI、AHB 和 APB 总线组成。它还包括许多强大的硬件 加速器,像视频处理,音频处理,二维图形,显示操作和缩放。一个集成的多格式编解码器( MFC )支 持 MPEG4/H.263/H.264 编码、译码以及 VC1 的解码。这个 H/W 编码器/解码器支持实时视频会议和 NTSC、 PAL 模式的 TV 输出。 S3C6410 有一个优化的接口连线到外部存储器。存储器系统具有双重外部存储器端口、 DRAM 和 FLASH /ROM/ DRAM 端口。 DRAM 的端口可以配置为支持移动 DDR,DDR,移动 SDRAM 和 SDRAM 。FLASH/ROM/DRAM 端口支持 NOR-FLASH,NAND-FLASH,ONENAND,CF,ROM 类型外部存储器和移动 DDR,DDR,移动 SDRAM 和 SDRAM 。 为减少系统总成本和提高整体功能,S3C6410 包括许多硬件外设,如一个相机接口,TFT 24 位真彩色 液晶显示控制器,系统管理器(电源管理等) ,4 通道 UART,32 通道 DMA,4 通道定时器,通用的 I/O 端口, IIS 总线接口,IIC 总线接口,USB 主设备,在高速(480 MB/S)时 USB OTG 操作,SD 主设备和高速多媒 体卡接口、用于产生时钟的 PLL。 S3C6410 提供了丰富的内部设备,下面我们从它的整体特性、多媒体加速特性、视频接口、USB 特征、 存储器设备、系统外设以及它的系统管理等方面来详细的介绍 S3C6410 处理器的特性:

SD卡实现全启动及烧录nand与跳过ECC效验冲突

SD卡实现全启动及烧录nand与跳过ECC效验冲突

SD卡实现全启动及烧录nand与跳过ECC效验冲突算是笔记、以为本人忘形比较好。

其中有如有理解变差或表述错误的地方请各位高手见谅和指正。

起因和大部分人相同,项目需求。

我们需要完成一套能启动的u-boot、kernel与fs (filesystem)。

这点已经基本完成。

因为需要批量烧录所以必须满足:操作简单、windows 下可完成烧录、等。

环境:s3c6410的核心板。

在这里多嘴一下,我们遇到了u-boot与kernel的ECC效验冲突的问题(因为我的nand 烧录全部由u-boot完成),本来想通过修改u-boot中的ECC效验与kernel对应,但发现实在太麻烦,所以想这有没有其它方法可以避免u-boot与kernel的ECC效验冲突。

其实细想一下这是完全可以实现的,只要你能通过nfs启动fs,就说明kernel与fs本身是没问题的,而用u-boot烧录nand以后kernel读出的数据间出了问题,那么我们就可以不用u-boot 烧录fs,这样就跳过了u-boot、避免了u-boot写入nand的数据kernel读出来错误的问题。

不用u-boot写fs到nand,还不能用网络的方式即不能用tftp、nfs了(因为操作繁琐、不适合批量生产),jtag之类的就更不用说了,dnw倒是可以用,只是不能用u-boot写入那就计较麻烦。

其实sd卡和dnw都可以完成fs的烧写,但是我们是用sd卡一次性完成u-boot、kernel、fs的数据全部烧写到nand中,这样的话当然是用sd卡最方便快捷。

闲话多了点、入正题吧。

1、准备两个版面可正常工作的u-boot,一个nand启动、一个sd卡启动;2、kernel;3、fs(有些加工、具体修改下述)。

注:有关它们的启动和传参网上的说明已经很丰富了、所以跳过。

sd卡的数据读写格式:直接help movi吧,不过不是每个版本的u-boot都有movi子系统的支持,我用的是u-boot-1.1.6。

S3C6410 NAND Flash驱动分析

S3C6410 NAND Flash驱动分析

S3C6410NAND Flash驱动分析文档单位名称:无锡东集电子公司部门名称:SOC系统研发部系统I组文档修订记录版本时间修订者备注1.0 2009-3-30 张纪艳010zjy 完成初稿每次修改需说明修改内容1.目的意义通过对6410下NAND Flash驱动的分析,了解以ARM11为内核的处理器下NAND Flash驱动的实现方式,并为SEP0718处理器中NAND Flash驱动的实现做准备。

2.背景该文档中的分析的NAND FLash驱动由华恒提供,其软硬件平台分别为:硬件平台:S3C6410软件平台:WinCE 6.03.硬件原理3.1NAND Flash分类从存储容量方面,NAND Flash包括两种:大容量NAND Flash和小容量NAND Flash,大容量为每页(2048+64)Byte,小容量为每页(512+16)Byte。

从组成存储单元的类型方面NAND Flash也包括两种:SLC(Single Level Cell)与MLC(Multi Level Cell)。

SLC技术与EEPROM原理类似,只是在浮置闸极(Floating gate)与源极(Source gate)之中的氧化薄膜更薄,其数据的写入是透过对浮置闸极的电荷加电压,然后可以透过源极,即可将所储存的电荷消除,采用这样的方式便可储存每1个信息位,这种技术的单一位方式能提供快速的程序编程与读取。

MLC原理是将两个位的信息存入一个浮动栅(Floating Gate,闪存存储单元中存放电荷的部分),然后利用不同电位的电荷,透过内存储存格的电压控制精准读写。

即一个Cell存放多个bit,现在常见的MLC架构闪存每Cell可存放2bit,容量是同等SLC架构芯片的2倍。

这也使得MLC NAND Flash的存取速度较慢。

MLC因较大容量和价格优势,具有较好的应用前景。

3.2NAND Flash硬件结构NandFlash用来保存大容量的数据,该系统中采用三星公司的K9G8G08,其要求电压范围为2.7~3.6V,总容量为(1G+32M)*8bit,其中1GB为数据区的容量,32MB为信息区的总容量,内部数据寄存器容量为(2K+64)Byte。

Tiny-S3C6410_Linux下LED灯驱动移植过程

Tiny-S3C6410_Linux下LED灯驱动移植过程

UT-S3C6410 ARM11 Linux 下的LED驱动一、实验环境操作系统:fedora13交叉编译环境:arm-Linux-gcc 或以上,6410板子内核源码路径在:忘了,需要厂家给的内核源代码硬件平台:S3C6410开发板(其他类型的开发板也可以注意配置GPIO)注:交叉编译环境一定要装好,一般的开发板给的配套资料中都会有,安装过程也都有详细的过程,如果没有,亲,你只有自己解决了。

也可以联系我(****************),泪奔支持你们。

二、实验原理控制LED是最简单的一件事情,就像学C语言时候写的“hello world”程序一样,是一个入门的程序。

首先来了解一下相关的硬件知识:UT-S3C6410LED原理图UT-S3C6410LED外部引脚图从上面的原理图可以得知,LED与CPU引脚的连接方法如下,高电平点亮。

LED1 -GPM0LED2 -GPM1LED3 -GPM2LED4 -GPM3从数据手册可以找到相应的控制方法。

这里我们以LED1为例,介绍一下LED1的操作方法,其他的类似,请大家自行分析。

通过上面可以得知,需要先将GPM0设置为输出方式。

将寄存器GPMCON低四位配置成0001。

然后将GPMDAT寄存器的第0位置1灯亮,置LED0灯亮,开发板上有四个LED所以要对GPMDAT的低四位进行操作,就可以实现对灯的亮灭操作了。

三、实验步骤1、编写驱动程序mini6410_leds.c#include <linux/miscdevice.h>#include <linux/delay.h>#include <asm/irq.h>//#include <mach/regs-gpio.h>#include <mach/hardware.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/mm.h>#include <linux/fs.h>#include <linux/types.h>#include <linux/delay.h>#include <linux/moduleparam.h>#include <linux/slab.h>#include <linux/errno.h>#include <linux/ioctl.h>#include <linux/cdev.h>#include <linux/string.h>#include <linux/list.h>#include <linux/pci.h>#include <asm/uaccess.h>#include <asm/atomic.h>#include <asm/unistd.h>#include <mach/map.h>#include <mach/regs-clock.h>#include <mach/regs-gpio.h>#include <plat/gpio-cfg.h>#include <mach/gpio-bank-e.h>#include <mach/gpio-bank-k.h>#define DEVICE_NAME "leds"static long sbc2440_leds_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) {switch(cmd) {unsigned tmp;case 0:case 1:if (arg > 4) {return -EINVAL;}tmp = readl(S3C64XX_GPKDAT);tmp &= ~(1 << (4 + arg));tmp |= ( (!cmd) << (4 + arg) );writel(tmp, S3C64XX_GPKDAT);//printk (DEVICE_NAME": %d %d\n", arg, cmd); return 0;default:return -EINVAL;}}static struct file_operations dev_fops = {.owner = THIS_MODULE,.unlocked_ioctl = sbc2440_leds_ioctl,};static struct miscdevice misc = {.minor = MISC_DYNAMIC_MINOR,.name = DEVICE_NAME,.fops = &dev_fops,};static int __init dev_init(void){int ret;{unsigned tmp;tmp = readl(S3C64XX_GPKCON);tmp = (tmp & ~(0xffffU<<16))|(0x1111U<<16); writel(tmp, S3C64XX_GPKCON);tmp = readl(S3C64XX_GPKDAT);tmp |= (0xF << 4);writel(tmp, S3C64XX_GPKDAT);}ret = misc_register(&misc);printk (DEVICE_NAME"\tinitialized\n");return ret;}static void __exit dev_exit(void){misc_deregister(&misc);}module_init(dev_init);module_exit(dev_exit);MODULE_LICENSE("GPL");MODULE_AUTHOR("FriendlyARM Inc.");(1)把Hello,Module 加入内核代码树,并编译一般编译2.6 版本的驱动模块需要把驱动代码加入内核代码树,并做相应的配置,如下步骤(注意:实际上以下步骤均已经做好,你只需要打开检查一下直接编译就可以了):Step1:编辑配置文件Kconfig,加入驱动选项,使之在make menuconfig 的时候出现打开linux-2.6.38/drivers/char/Kconfig 文件,添加如图所示:#====================cgf add===================================== config MINI6410_LEDStristate "LED Support for Mini6410 GPIO LEDs"depends on CPU_S3C6410default yhelpThis option enables support for LEDs connected to GPIO lineson Mini6410 boards.#================================================================== 保存退出,这时在linux-2.6.38 目录位置运行一下make menuconfig 就可以在DeviceDrivers Character devices 菜单中看到刚才所添加的选项了,按下空格键将会选择为<M>,此意为要把该选项编译为模块方式;再按下空格会变为<*>,意为要把该选项编译到内核中,在此我们选择<M>,如图,如果没有出现,请检查你是否已经装载了缺省的内核配置文件,(2)Makefile文件Step2:通过上一步,我们虽然可以在配置内核的时候进行选择,但实际上此时执行编译内核还是不能把mini6410_leds.c编译进去的,还需要在Makefile 中把内核配置选项和真正的源代码联系起来,打开linux-2.6.38-cgf/drivers/char/Makefile,obj-$(CONFIG_MINI6410_LEDS) += mini6410_leds.o添加并保存退出Step3:这时回到linux-2.6.38 源代码根目录位置,执行make modules,就可以生成我们所需要的内核模块文件drivers/char/mini6410_leds.ko 了,注意:执行make modules 之前,必须先执行make zImage,只需一次就可以了。

不使用jlink烧写裸版程序

不使用jlink烧写裸版程序

Linux应用是建立在Linux系统的基础上执行的。

如果我们要跑裸板程序呢?那我们就不得不抛弃操作系统。

OK6410的裸板程序烧录方法。

那些AXD,JLink可以实现仿真,还可以用并口(oflash), openjtag。

(可以参照韦东山第0课第2节_刚接触开发板之烧写裸板程序)下面介绍几种不使用jlink烧写裸板的方法:一、使用串口和SecureCRT软件通过Uboot烧写1.烧写Uboot(参照飞凌ok6410 linux手册,通过SD卡烧写)首先:我们打开SecureCRT,用串口连接好OK6410开发板,开发板设置为SD卡启动,烧写Uboot。

其次:烧写结束后,开发板设置为nandflash启动。

最后:操作SecureCRT软件,文件->连接串口(配置串口),然后给开发板上电,马上在键盘上按空格,这就可以进入Uboot。

(另一种方法:不用烧写Uboot,使用SD卡中的Uboot:1.使用飞凌提供的SD_Write.exe 软件将mcc_ram256.bin烧写到SD卡中(不用在SD卡中放Uboot,内核,文件系统)。

2.开发板设置为SD卡启动, 然后给开发板上电,马上在键盘上按空格,这就可以进入SD 卡中的Uboot)2.进入Uboot命令行模式,通过串口发送程序到内存首先:出入5,退出Uboot选项,进入命令行模式,输入命令loady 0x50008000 使用Ymodem模式发送文件到内存0x50008000地址(sdram中)其次:操作SecureCRT软件,传输->发送Ymodem,选择编译好的.bin文件确定。

最后:输入go 0x50008000 从内存0x50008000地址处运行程序(有时得不到想要的结果)注意:将程序写到了sdram中,没有破坏nand flash中的Uboot,但是掉电会丢失。

程序在sdram中运行速度比较快。

3.把内存(sdram)中的程序写到nand flash中首先:执行nand erase 0 100000 擦除Nand Flash中的0到1M的地址内存,(如果之前在Nand Flash里烧录过Uboot的话,那么U-boot就会被擦除)。

tiny6410

tiny6410

tiny6410简介Tiny6410是一款以ARM11芯片(三星S3C6410)作为主处理器的嵌入式核心板,该CPU基于ARM1176JZF-S核设计,内部集成了强大的多媒体处理单元,支持Mpeg4,H.264/H.263等格式的视频文件硬件编解码,可同时输出至LCD和TV显示;它还并带有3D图形硬件加速器,以实现OpenGL ES 1.1&amp; 2.0加速渲染,另外它还支持2D图形图像的平滑缩放,翻转等操作。

Tiny6410采用高密度6层板设计,尺寸为64 x50mm,它集成了128M DDR RAM,256M/1GB SLC Nand Flash存储器,采用5V供电,在板实现CPU必需的各种核心电压转换,还带有专业复位芯片,通过2.0mm间距的排针,引出各种常见的接口资源,以供不打算自行设计CPU板的开发者进行快捷的二次开发使用。

Tiny6410SDK是采用Tiny6410核心板的一款参考设计底板,它主要帮助开发者以此为参考进行核心板的功能验证以及扩展开发。

该底板具有三LCD接口、4线电阻触摸屏接口、100M标准网络接口、标准DB9五线串口、Mini USB 2.0接口、USB Host1.1、3.5mm音频输入输出口、标准TV-OUT接口、SD卡座、红外接收等常用接口;另外还引出4路TTL串口,另1路TV-OUT、SDIO2接口(可接SD WiFi)接口等;在板的还有蜂鸣器、I2C-EEPROM、备份电池、AD可调电阻、8个中断式按键等。

在布局上安排上,我们尽量考虑把常用尺寸的LCD模块能够固定在底板上,比如3.5”,4.3”LCD, 7”LCD等,这样用户在使用时不至于把各种电线搅在一起,更增加了开发套件的便携性。

我们还充分地发挥了6410支持SD卡启动这一特性,使用我们精心研制的Superboot,无需连接电脑,只要把目标文件拷贝到SD卡中(可支持高达32G的高速大容量卡),你就可以在开发板上极快极简单地自动安装各种嵌入式系统(WindowsCE6/Linux/Android/Ubuntu/uCos2等);甚至无需烧写,就可以在SD卡上直接运行它们!核心板说明开发底板说明Tiny6410的开发参考板提供如图所示,光盘中有该它的PCB 文件(Allegro格式)操作系统支持Linux2.6.28.6 + Qtopia-2.2.0 + Qt-Extended-4.4.3 + QtE-4.7.0 6.0(R3)Android 2.2Ubuntu-0910 完全开源的U-boot三星公司为6410系统提供了带有USB下载功能的U-boot,我们在此基础上增强和改进了它的功能,并把它完全开源出来,以供广大嵌入式爱好者学习研究使用,主要特性如下:增加了下载菜单,类似Superboot的USB下载菜单增加了SD卡启动配置支持直接下载烧写yaffs2文件系统映像支持烧写WindowsCE BootLoader之Nboot支持烧写WindowsCE映像的功能支持烧写单文件映像文件,就是通常所说的裸机程序支持返回原始shell说明:大部分声称完全开源Bootloader的6410开发板,也都是三星提供的U-boot稍作改动而来的,所有开源的U-boot 目前均无法烧写到SDHC卡(超过2G的大容量SD卡)中使用。

UBoot移植详解

UBoot移植详解

u-boot 移植步骤详解1 U-Boot简介U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。

从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。

其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。

但是U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。

其目前要支持的目标操作系统是OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS。

这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。

这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。

就目前来看,U-Boot对PowerPC系列处理器支持最为丰富,对Linux的支持最完善。

其它系列的处理器和操作系统基本是在2002年11 月PPCBOOT 改名为U-Boot后逐步扩充的。

从PPCBOOT向U-Boot的顺利过渡,很大程度上归功于U-Boot的维护人德国DENX软件工程中心Wolfgang Denk[以下简称W.D]本人精湛专业水平和持着不懈的努力。

当前,U-Boot项目正在他的领军之下,众多有志于开放源码BOOT LOADER移植工作的嵌入式开发人员正如火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入,以支持更多的嵌入式操作系统的装载与引导。

基于ARM11的视频采集与编码系统的设计

基于ARM11的视频采集与编码系统的设计

基于ARM11的视频采集与编码系统的设计摘要:基于嵌入式技术的无线视频监控以其灵活性、高集成性、便捷性等诸多优点必将取代传统的有线视频监控。

针对目前视频监控的实际需求,结合嵌入式技术、图像处理技术,设计并实现了一种可靠性高、成本低的嵌入式视频采集及编码系统。

它是视频监控的前端,是无线视频监控系统的一个子系统。

系统选用S3C6410微处理器作为核心板的控制器,采用USB接口的摄像头进行采集,利用S3C6410的硬件编解码模块进行H.264编码。

根据系统的功能要求,开发了zc301摄像头和MFC的设备驱动程序,并采用内存映射方式和双缓冲思想编写了基于V4L的视频采集程序。

探讨了H.264的编码特性和码流结构,利用MFC驱动中的API函数,开发了基于H.264算法的视频编码程序。

测试表明,设计的系统视频采集效率高、图像连续性好、运行稳定。

关键词:嵌入式系统;ARM11;S3C6410;视频采集;视频编码;H.264ABSTRACT:In the future, Wireless video monitoring system based on embedded technology, with many advantages such as flexibility, integration, convenience and so on, will replace existing wired video monitoring system inevitably. Aiming at actual demand of present video monitoring, this paper designs and realizes a reliable and cheap embedded video capturing and compression system, with the combination of embedded technology and image processing technology. This system is the front end of video monitoring and a subsystem of wireless video monitoring system. This system chooses S3C6410 as the kernel board's controller uses the camera with USB interface to capture pictures and encodes the video data using the codec of S3C6410. According to functional requirements of the system, device drivers of MFC and zc301 camera are developed, and video capturing application based on V4L using Memory Mapping and the idea of the double buffer are also developed. After a brief study on the feature and stream structure of H.264, video encoding application based on H.264 with the MFC driver’s API is completed. The test shows that this system has a high efficiency to capture video data, has good continuity for pictures and can run stably.KEY WORD:Embedded system; ARM11; S3C6410; Video capturing; Video encoding; H.264引言视频具有表达客观事物直观、生动、形象,信息丰富等优点,它在各行各业的应用日益受到人们的关注。

u-boot移植详细文档

u-boot移植详细文档

u‐boot移植详细文档作者:Tekkaman Ninja作者博客:整理:Coolbor Xie一、Boot Loader的概念和功能1、嵌入式Linux软件结构与分布在一般情况下嵌入式Linux系统中的软件主要分为以下及部分:(1)引导加载程序:其中包括内部ROM中的固化启动代码和Boot Loader两部分。

而这个内部固化ROM是厂家在芯片生产时候固化的,作用基本上是引导Boot Loader。

有的芯片比较复杂,比如Omap3,他在flash中没有代码的时候有许多启动方式:USB、UART或以太网等等。

而S3C24x0则很简单,只有Norboot和Nandboot。

(2)Linux kernel 和drivers。

(3)文件系统。

包括根文件系统和建立于Flash内存设备之上的文件系统(EXT4、UBI、CRAMFS等等)。

它是提供管理系统的各种配置文件以及系统执行用户应用程序的良好运行环境的载体。

(4)应用程序。

用户自定义的应用程序,存放于文件系统之中。

在Flash 存储器中,他们的一般分布如下:但是以上只是大部分情况下的分布,也有一些可能根文件系统是initramfs,被一起压缩到了内核映像里,或者没有Bootloader参数区,等等。

2、在嵌入式Linux中为什么要有BootLoader在linux内核的启动运行除了内核映像必须在主存的适当位置,CPU还必须具备一定的条件:1. CPU 寄存器的设置: R0=0;R1=Machine ID(即Machine Type Number,定义在linux/arch/arm/tools/mach‐types); R2=内核启动参数在 RAM 中起始基地址;2. CPU 模式: 必须禁止中断(IRQs和FIQs); CPU 必须 SVC 模式;3. Cache 和 MMU 的设置: MMU 必须关闭;指令 Cache 可以打开也可以关闭; 数据 Cache 必须关闭;但是在CPU刚上电启动的时候,一般连内存控制器都没有配置过,根本无法在内存中运行程序,更不可能处在Linux内核的启动环境中。

uboot内核移植和裁剪详细步骤

uboot内核移植和裁剪详细步骤

uboot内核移植和裁剪详细步骤-U-boot内核移植步骤:Linux 3.3.5系统移植1. 将arch/arm/mach-s3c6410/下的,mach-smdk6410.c cp为mach-my6410.c;2. 打开arch/arm/mach-s3c6410/下的Kconfig,仿照MACH_SMDK6410做一个菜单项:config MACH_MY6410bool "MY6410"select CPU_S3C6410select SAMSUNG_DEV_ADCselect S3C_DEV_HSMMCselect S3C_DEV_HSMMC1select S3C_DEV_I2C1select SAMSUNG_DEV_IDEselect S3C_DEV_FBselect S3C_DEV_RTCselect SAMSUNG_DEV_TSselect S3C_DEV_USB_HOSTselect S3C_DEV_USB_HSOTGselect S3C_DEV_WDTselect SAMSUNG_DEV_BACKLIGHTselect SAMSUNG_DEV_KEYPADselect SAMSUNG_DEV_PWMselect HAVE_S3C2410_WATCHDOG if WATCHDOGselect S3C64XX_SETUP_SDHCIselect S3C64XX_SETUP_I2C1select S3C64XX_SETUP_IDEselect S3C64XX_SETUP_FB_24BPPselect S3C64XX_SETUP_KEYPADhelpMachine support for the Pillar MY64103. 打开arch/arm/tools/mach-types文件,这里面存的是机器ID必须要和uboot里面的ID保持一致,将其283行复制添加在后面并修改为: smdk6410MACH_SMDK6410 SMDK6410 1626 xx6410 MACH_XX6410 XX6410 1626 这个机器ID和UBOOT里的机器ID相同时才能启动内核;1. 修改BSP文件mach-my6410.c,内容如下:将mach-mach-my6410.c文件中的所有smdk6410改成my6410(不要改大写SMDK6410的)MACHINE_START(MY6410, "MY6410")//这个要和Kconfig里的MACH-MY6410匹配 2. 在当前目录的Makefile最后一行加上 obj-$(CONFIG_MACH_MY6410) += mach-my6410.o3. 修改顶层的Makefile:ARCH ?= armCROSS_COMPILE ?= /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux- 4. 复制arch/arm/configs/下的s3c6400-defconfig文件,然后将其保存为.config,配置内核支持EABI,再选中XX6410 board这一项,保存退出;5. 执行make menuconfig对内核进行配置:执行make编译执行make zImage生成zImage将uboot根目录下的mkimage拷贝到/user/bin目录下执行make uImage生成uImage通过以上几步linux内核移植完了,剩下就移植驱动了。

WIFI调试笔记

WIFI调试笔记

S3c6410 平台 Android系统的Wi-Fi调试记录2011-02-11 16:26硬件平台:S3c6410操作系统:Android网卡芯片:GH381(SDIO接口 sdio8688)1、SDIO驱动因为是SDIO接口,所以请先保证mmc驱动(代码在“kernel\drivers\mmc”)部分能够正常工作,这个一般调试flash的时候会涉及到,问题不大,因为S3c6410平台的HSMMC有3个,要根据硬件原理图确认网卡的SDIO接口接在哪个上面了,我调试的时候是HSMMC1,针对HSMMC1涉及到的修改有① "kernel\arch\arm\configs\smdk6410_android_deconfig":CONFIG_S3C_DEV_HSMMC1=yCONFIG_S3C6410_SD_CH1=y②"kernel\arch\arm\mach-s3c6410\Kcofnig":select S3C_DEV_HSMMC1③“kernel\arch\arm\mach-s3c6410\mach-smdk6410.c":#ifdef CONFIG_S3C6410_SD_CH1&s3c_device_hsmmc1,#endif注:目前暂时把网卡的上电部分放到了mmc初始化管脚的时候,以后再挪到其他地方2、网卡驱动网卡驱动一般由芯片厂商提供,如果能拿到源代码首先要保证能够编译通过,GH381的驱动编译出来名为sd8xxx.ko。

驱动能够编译通过后,就是加载了,两个步骤:1)把驱动和firmware放到系统中去.一般是在”eclair\vendor\sec_proprietary\"目录下建一个目录,放上驱动和firmware文件。

然后在Android.mk中将文件拷贝到设备对应目录即可,如:PRODUCT_COPY_FILES += $(LOCAL_PATH)/helper_sd.bin:system/etc/firmware/mrvl/helper_sd.bin(firmware文件)PRODUCT_COPY_FILES += $(LOCAL_PATH)/sd8688.bin:system/etc/firmware/mrvl/sd8688.bin(firmware文件)PRODUCT_COPY_FILES += $(LOCAL_PATH)/sd8xxx.ko:system/lib/modules/sd8xxx.ko(驱动文件)2)系统调用驱动,驱动download firmware因为网卡驱动对上层的接口是通过wpa_supplicant中间层实现的,因此也要保证wpa层能能够正确的识别网卡。

手持移动终端中USB+OTG功能的研究和实现

手持移动终端中USB+OTG功能的研究和实现
作者:王非
学位授予单位:东南大学
1.期刊论文王申.陈曦.于宏毅.WANG Shen.CHEN Xi.YU Hong-yi DSP6416的主机接口(HPI)与USB接口的连接与设计
-电讯技术2005,45(2)
本文以基于3G技术的移动自组织网(MANET)的研究为背景,用现在较为流行的高速USB接口与DSP的主机接口HPI相连接,成功地解决了MANET移动终端与主机之间的数据交换问题.本文在介绍了TI公司DSP芯片TMS320C6416和CYPRESS公司的USB接口控制芯片CY7C68013特点以后,介绍了两者连接的一种硬件设计以及USB芯片的固件的编写和调试.
过程。在此基础之上,搭建了基于Linux的MIPv6的测试网络,并对移动终端上的
设备驱动及其移动功能进行了测试。
@@经过测试表明,在该移动终端上所移植的设各驱动能够对移动终端上设备支
持。在移动性实现上,移动终端在从家乡网络和外地网络之间的切换过程中能够
在一定的切换延迟下仍能保持和通信对端的连接。
@@关键词:移动终端 S3C6410 MIPv6
英特尔Xscale PXA271是一种功能十分强大的嵌入式处理器,采用Xscale核心,频率最高可达624MHz,加强了微处理器速度的管理,加快了多媒体处理的速度,并支持802.11b及蓝牙技术、USB 接口,采用PBGA 封装方式。其主要针对下一代高性能的智能终端市场,支持视频流、MP3、无线互联网存取以及其他边缘领先技术。
。通过对相邻的JPEG视频图像的帧差和数据大小的变化幅度进行判断,实现自动发现动态目标的功能,一旦发现即可报警并记录,从而达到无人监控的目的。<br>
本课题设计与实现的视频采集与接收系统的优越性在于:其是完全基于数字化、网络化、具有可移动性的视频监控系统的图像采集接收方案。整个系统的图像采集、图像处理及图像接收过程都采用数字信号,方便管理、储存和控制。通过Internet网络来进行图像传输,可以监控到任何网络覆盖的区域,监控范围广,受距离和环境的限制很小。系统设备体积很小,方便搭建和移动,成本很低,具有较强的扩展性。同时此系统具有动态目标监测的触发功能,监控用户可以通过网络浏览器进行查看监控情况,而无需安装专门的客户端软件,从而可以利用任何可接入网络的终端作为监控端,可移动的察看监测点的视频情况。<br>

6410说明

6410说明

We had bought two s3c6410 header board and one KIT3000 ( s3c6410 evaluation board with this header board) .I create a boot MMC Card with IROM_Fusing_Tool and SD boot.nb0 file in your DVD .in your evaluation board when I set OM[1:4] to [1111].i could boot from MMC and communicated with board through serial port and load selected images into nand flash of board.I mountage your header board on our desigened board ( I design my board according to your KIT300 Schematic which was in your DVD ) and set OM[1:4] to [1111] but the cpu board couldn’t boot from MMC . it seems the cpu module has initiated the SD/MMC but couldn’t load valid boot program.When in owner board I set OM[0:4] to [0001], board load U-Boot 1.1.6 (May 11 2009 - 10:23:24) for SMDK6410 and I can communicate with cpu through serial port.These data appears in serial window (I use DNW from your DVD)U-Boot 1.1.6 (May 11 2009 - 10:23:24) for SMDK6410****************************************** UT-S3C6410 Nand boot v0.18 **** ShenZhenUrbetter Technology **** ******************************************CPU: S3C6410@532MHzFclk = 532MHz, Hclk = 133MHz, Pclk = 66MHz, Serial = CLKUART (SYNC Mode)Board: SMDK6410DRAM: 128 MBFlash: 0 kBNAND: 256 MB*** Warning - bad CRC or NAND, using default environmentIn: serialOut: serialErr: serialNet: Not Found CS8900@0x18800300Hit any key to stop autoboot: 0NAND read: device 0 offset 0x100000, size 0x2000002097152 bytes read: OK## Booting image at c0008000 ...Boot with ImageStarting kernel ...undefined instructionpc : [<50008004>] lr : [<c7e20630>]sp : c7fffddc ip : c7e7bfb8 fp : 00000000r10: c7e80c20 r9 : 00000002 r8 : c7e7bfdcr7 : 00000000 r6 : 00000000 r5 : 50000124 r4 : 00000000 r3 : 50008000 r2 : 50000100 r1 : 0000065a r0 : 00000000 Flags: nZCv IRQs off FIQs off Mode SVC_32Resetting CPU ...reset...when I hit Space KeySMDK6410 #And many commands is available? - alias for 'help'base - print or set address offsetbdinfo - print Board Info structurebootelf - Boot from an ELF image in memorybootm - boot application image from memorybootp - boot image via network using BootP/TFTP protocol …setenv - set environment variablessleep - delay execution for some timetest - minimal test like /bin/shtftpboot- boot image via network using TFTP protocolusb - USB sub-systemversion - print monitor versionI have two questions:1: why couldn’t I boot from MMC in my CPU board ? I designed my board according to your KIT3000 Evaluation board and used just some pins : “power pins,OM[0:4] pins,resetpin,SD/MMC pins and RX/TX0 pins” And use same MMC card according to your documents in evalucation kit . your board worked correct with MMC card , but our board didn’t work.Do we need to use another pins for boot from MMC card ?Is it important type of card ?2: how can I load a kernel (for example Win CE ) on nand flash of cpu board by using U-Boot 1.1.6.I afraid send a command and disturb uboot program on Nand flash?This is my board.。

ARM11(S3C6410)裸机程序开发(不用J-LINK)

ARM11(S3C6410)裸机程序开发(不用J-LINK)
1、连接好串口线、USB 线,打开 DNW 2、启动开发板,在 DNW 中迅速敲回车键或者空格键,进入 u‐boot 3、在 u‐boot 中输入命令 dnw 0x50000000 4、USB Port→Transmit 选择生成的 bin 文件 5、传输完毕后,在 u‐boot 中输入命令 go 0x50000000 那么程序就在 6410 上运行了,如果你是点亮 led 程序,那么就可以看到 led 的变化了。
将 0x8000 改成 0x50000000

输入 start

输入 init.o
选 arm 的类型,我的是
同理 配置好后,点击“OK”
4、编译运行,生成 bin 文件
二、向 6410 下载裸机程序(bin 文件)并运行
ARM11(S3C6410)裸机程序开发
一、 制作可执行 bin 文件
1、新建工程
2、添加文件(main.c 和 init.s)
点击“打开”
点击“OK”
3、配置工程
输入输出文件
将 default 改为 xx.bin 我的是 beel.bin

毕业设计个人总结范文

毕业设计个人总结范文

毕业设计个人总结范文毕业设计是我们学生学习的最后阶段。

它是我们所学的基础知识和专业知识的综合运用。

这是一个重新学习和提高的综合过程,下面是小编为大家整理的关于毕业设计个人总结范文,如果喜欢可以分享给身边的朋友喔!毕业设计个人总结范文1光阴似箭,时光如梭,眼前止在紧张而义忙碌着进行着毕业设计,这项工作量大,具有挑战性的任务是对自己二年以来学习的检验,必须有扎实的理论功底和丰富的实践经验才有可能保质保量地完成预定的设计目标。

回顾二年以来的专业学习,自己还是存在一些不足和遗憾之处,但从整体上来看,经过自己不懈的努力还是取得了长足的进步,给专科三年的生活和学习划上了较为满意的句号。

经过这些天的努力,毕业设计终于完成。

回想我们做设计的过程,可以说是难易并存。

难在所学知识的综合与归纳,易在我们做过这种类型的设计。

所以毕业设计对于我们来说,既是一次小小的挑战,又是对我们大学三年所学知识的测验。

在做毕业设计的过程中,我们遇到了很多问题,如果不是自己亲自做,可能就很难发现自己在某方面知识的欠缺,对于我们来说,发现问题,解决问题,这是最实际的。

当我们遇到难题时,在经过肖颜老师、袁明老师、杨丽丽、李南西等老师的帮助下,这些难题得以解决,设计也能顺利的完成。

毕业设计,是我们大学里的最后一道大题,虽然这次的题量很大,看起来困难重重,但是当我们实际操作起来,又会觉得事在人为。

只要认真对待,所有的问题也就迎刃而解。

在上机操作之前,我们有一个手写编制定额的过程,这是相对而言比较耗费精力的,也是最复杂的,做一个较大的设计,需要耐心,在这个过程中,耐力也就得到了一定的磨练。

这也是也是为即将面临的实习打下一个良好的基础。

毕业设计完成后,我们都认为做路基路面是最复杂的,这里遇到的问题也就最多。

我们发现,只要完整地做好了一个设计,以后的也就大多“雷同”,所以这也算得上是其中的一个收获。

毕业设计是一个过渡时期,我们从学生走向实习岗位的必经之路,在不长不短的设计过程中,我发现自己主要得到了以下收获:一。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在132行添加如下,目的是找到命令段
132 .global uboot_cmd_start
133 uboot_cmd_start:
134 .word __u_boot_cmd_start - _start
135 .global uboot_cmd_end
145 "ldr %0, [r0]\n"
146 "ldr r0, =uboot_cmd_end\n"
147 "ldr %1, [r0]\n"
148 "ldr %2, =_start\n"
88 #define DM9000_IO CONFIG_DM9000_BASE
89 #define DM9000_DATA (CONFIG_DM9000_BASE + 4)
90 #define CONFIG_DM9000_BUS16
在114行到117行添加如下,目的在于打开网络支持和ping命令
58 bic r1, r1, r2
59 orr Байду номын сангаас r1, r1, #0x11
60 orr r1, r1, #0x1100
61 str r1, [r0]
62 /* LED ALL ON */
sizeof(cmd_tbl_t));
154 // return find_cmd_tbl(cmd, &__u_boot_cmd_start, len);
155 }
八、修改u-boot-2012.04/include/configs/smdk6400.h
把81到83行注释掉,目的是取消CS8900网卡
把board_eth_init函数修改如下,目的在于把DM9000网卡替换CS8900网卡
126 int board_eth_init(bd_t *bis)
127 {
128 int rc = 0;
129 #ifdef CONFIG_DM9000
141 int text_start;
142 // int len = &__u_boot_cmd_end - &__u_boot_cmd_start;
143 __asm__ __volatile__(
144 "ldr r0, =uboot_cmd_start\n"
134 #endif
135 return rc;
136 }
六、修改u-boot-2012.04/board/samsung/smdk6400/smdk6400_nand_spl.c
把board_init_f函数修改如下
33 void board_init_f(unsigned long bootflag)
136 uboot_cmd_end:
137 .word __u_boot_cmd_end - _start
注释掉386行,如下
@add lr, lr, r9
二、修改u-boot-2012.04/arch/arm/lib/board.c
149 :"=&r"(start), "=&r"(end), "=&r"(text_start)
150 :
151 :"r0"
152 );
153 return find_cmd_tbl(cmd, start + text_start, (end - start) /
130 rc = dm9000_initialize(bis);
131 #endif
132 #ifdef CONFIG_CS8900
133 rc = cs8900_initialize(0, CONFIG_CS8900_BASE) ;
LIBCOMMON_SUPPORT)
17 // printf("raise: Signal # %d caught\n", signum) ;
18 #endif
19 return 0;
20 }
四、修改u-boot-2012.04/board/samsung/smdk6400/lowlevel_init.S
这些变量也可在smdk6400.h中以宏的方式定义
经测试,nand、tftp等命令都好用,如有问题请发邮箱:
lizhiyong_beyond@
以下为文件中修改的部分
一、修改u-boot-2012.04/arch/arm/cpu/arm1176/start.S
在uboot启动后手动添加环境变量
[zhangsan@nand]# set ipaddr 192.168.1.20
[zhangsan@nand]# set serverip 192.168.1.254
[zhangsan@nand]# set ethaddr 11:22:33:44:55:66
34 {
35 // relocate_code(CONFIG_SYS_TEXT_BASE - TOTAL_MA LLOC_LEN, NULL,
36 // CONFIG_SYS_TEXT_BASE);
37 relocate_code(0x2000, NULL, CONFIG_SYS_TEXT_B ASE);
114 //mysefl
115 #define CONFIG_CMD_NET
116 #define CONFIG_CMD_PING
117 //myself
把164行修改如下,目的在于修改uboot的shell名字
164 #define CONFIG_SYS_PROMPT "[zhangsan@nand]# "
添加85到90行如下,目的是添加DM9000网卡支持
81 //#define CONFIG_CS8900 /* we have a CS8900 on-board */
82 //#define CONFIG_CS8900_BASE 0x18800300
83 //#define CONFIG_CS8900_BUS16 /* follow the Linux driver */
84
85 #define CONFIG_DM9000
86 #define CONFIG_DRIVER_DM9000
87 #define CONFIG_DM9000_BASE 0X18000000
38 }
七、修改u-boot-2012.04/common/command.c
修改find_cmd函数如下,目的在于寻找命令段
138 cmd_tbl_t *find_cmd (const char *cmd)
139 {
140 int start, end;
把530到532行修改如下,因为该开发板没有NOR
530 puts("0K");
531 //puts(failed);
532 //hang();
把第54到63行删除
在第54行到66行添加如下
这段代码的目的在于测试程序是否能执行到此,如果能则开发板的四个led都亮
55 ldr r0, =0x7f008820
56 ldr r1, [r0]
57 ldr r2, =0xffff
63 ldr r1, =0x7f008824
64 ldr r2, [r1]
65 bic r2, r2, #0xf
66 str r1, [r2]
五、修改u-boot-2012.04/board/samsung/smdk6400/smdk6400.c
三、修改u-boot-2012.04/arch/arm/lib/eabi_compat.c
注释掉第17行如下,该问题以后再解决
14int raise (int signum)
15 {
16 #if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_
u-boot-2012.04移植
开发平台:x86 redhat5.5
目标平台:SMDK6410
注意:
该文档是移植完成之后的总结,所以并非按照真正的移植步骤所写, 只做参考
修改完成后运行make进行编译,把编译生成的u-boot-nand.bin烧写到nand的0-0x40000后即可切换为nand启动方式来运行
在373到375行之间添加如下
372 addr -= gd->mon_len;
373 //myself
374 addr = 0x57e00000;
375 //myself
376 addr &= ~(4096 - 1);
相关文档
最新文档