
Bootloader
文章平均质量分 60
armeasy
这个作者很懒,什么都没留下…
展开
-
深入研究S3C2440 bootloader
很久前就想移植2440的bootloader了,但是由于出身硬件职位有别,不能越殂代庖,因此此计划一度搁浅。但是扬创公司着实另人气愤,bootloader做得不好不说,还当自己代码如心肝宝贝,死活不肯开放,于是只能自己在业余时间移植了。 先来看看扬创的bootloader的实现方法: 首先:在汇编中初始化堆栈,中断向量表,MMU,时钟,串口等,然后跳到C语言的Main函原创 2009-10-09 19:29:00 · 1704 阅读 · 1 评论 -
i.MX25的GPIO控制
<br />最近研究freescale的i.MX25系列处理器,发现在控制方面很多地方和三星的处理器都不太一样。包括最基础的GPIO口控制,也是大不相同。<br />i.MX25系列的GPIO口大多是复用口,如果我们想将某IO口设置为输入或输出,首先需通过复用配置寄存器将该IO口配置为GPIO,然后再配置GPIO的相关寄存器。<br />通过配置SW_MUX_CTL寄存器选择IO口的工作模式,每一个管脚都对应一个SW_MUX_CTL寄存器,具体通过如下描述:<br />IOMUXC_SW_MUX_CTL_P原创 2010-09-08 11:19:00 · 2538 阅读 · 0 评论 -
PB编译找不到oal_memory_s3c2450.lib库
<br />编译2450 bootloader出错,编译driver没错,<br />编译Eboot错误如下:<br />BUILD: [01:0000000039:PROGC ] Compiling ./debug.c<br />BUILD: [01:0000000042:PROGC ] Compiling ./ether.c<br />BUILD: [01:0000000045:PROGC ] Compiling ./flash.c<br />BUILD: [01:0000000048:PROGC ]原创 2010-08-18 16:45:00 · 988 阅读 · 0 评论 -
更改Eboot.nb0大小
<br />一:Eboot文件夹中,修改boot.bib:<br />; EBOOT 80038000 00019000 RAMIMAGE<br />; lqm changed.<br /> EBOOT 80038000 00040000 RAMIMAGE<br />; ROMSIZE=19000<br />; lqm changed.<br /> ROMSIZE=40000<br />二:修改loader.h中配置文件:<br />#define EBOOT_STORE_OF原创 2010-08-18 17:05:00 · 897 阅读 · 0 评论 -
S3C2440的中断寄存器
<br />1.中断分两大类:内部中断和外部中断。 <br />2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断<br />输入,则必须配置引脚为中断,并且不要上拉。具体参考datesheet数据手册。 <br />寄存器:EXTINT0-EXTINT2:三个寄存器设定EINT0-EINT23的触发方式。 <br /> EINTFLT0-EINTFLT3:控制滤波时钟和滤波宽度。 <br />转载 2010-08-18 16:57:00 · 1695 阅读 · 0 评论 -
S3C2440 Timer初始化方法
S3C2440 Timer初始化方法<br />s3c2410提供了5个16位的Timer(Timer0~Timer4),其中Timer0~Timer3支持Pulse Width Modulation—— PWM(脉宽调制)。Timer4是一个内部定时器(internal timer),<br />PCLK是Timer的信号源,我们通过设置每个Timer相应的Prescaler和Clock Divider把PCLK转换成输入时钟信号传送给各个Timer的逻辑控制单元(Control Logic),事实上每个原创 2010-08-18 16:55:00 · 3388 阅读 · 3 评论 -
S3C2440 PWM设置
S3C2440 PWM设置<br /> S3C2440含有五个定时器,其中定时器0,1,2,3具备PWM功能,定时器4没有外部引脚,属于内部定时器。<br /> PWM定时器具有双缓冲功能,这样即使新的定时值设置了,当前的定时功能也会继续完成,之后再重载新敲定的定时参数。其中正在被读取的定时值放在TCNTBn寄存器中,修改的定时器在TCNTOn中,当前的定时线程进行完毕后,TCNT0n的值被自动加载到TCNTBn中。<br /> PWM中的TCNTn为内部寄存器,当TCNTn进行定时工作减为零时原创 2010-08-18 16:54:00 · 2534 阅读 · 1 评论 -
使uboot支持S3C6410的SD启动
使uboot支持S3C6410的SD启动--Figo 2009-8-13 这里使用的uboot并非uboot官方发布的uboot代码,而是为三星定制的一个uboot版本s3c-u-boot-1.1.6,其代码作者就包括了三星的程序员与denx的员工。这个版本支持SD启动,不过默认是nand启动,使它支持uboot需要做以下事情:1、 虽然支持uboot启动,但是uboot代码里不叫SD启动方式,而是叫movinand启动方式,在incluede/configs转载 2010-08-17 17:59:00 · 1387 阅读 · 0 评论 -
nand flash坏块管理OOB,BBT,ECC
<br />0.NAND的操作管理方式<br /> NAND FLASH的管理方式:以三星FLAHS为例,一片Nand flash为一个设备(device),1 (Device) = xxxx (Blocks),1 (Block) = xxxx (Pages),1(Page) =528 (Bytes) = 数据块大小(512Bytes) + OOB 块大小(16Bytes,除OOB第六字节外,通常至少把OOB的前3个字节存放Nand Flash硬件ECC码)。<br /> 1.为什么会出现坏块<br转载 2010-07-19 16:32:00 · 1416 阅读 · 0 评论 -
ARM 汇编中的跳转指令小记
看到2440的bootloader中,出现了如下东东:%B0,%F1.这两个东东是什么? 原来,B表示back,F表示follow(个人理解): bne %B0,如果不相等则跳到本条语句前的lable为0的行。bne %F1,如果不相等则跳到本条语句后的lable为1的行。原创 2010-04-05 11:15:00 · 937 阅读 · 0 评论 -
S3C2450自动升级[原创作品,转载请注明出处]
S3C2450自动升级在BSP包中,有两个bootloader文件夹,一个命名为bootloader,另一个命名为bootloader_update。Bootloader文件夹用于USB下载,调试用,bootloader_update用于生产,自动升级用。下面重点介绍bootloader_update文件夹。Bootloader_update文件夹下有四个文件夹,分别是BLCOMMON,E原创 2010-01-26 20:04:00 · 1264 阅读 · 0 评论 -
S3C2450自动升级[原创作品,转载请注明出处]
S3C2450自动升级 在BSP包中,有两个bootloader文件夹,一个命名为bootloader,另一个命名为bootloader_update。Bootloader文件夹用于USB下载,调试用,bootloader_update用于生产,自动升级用。下面重点介绍bootloader_update文件夹。Bootloader_update文件夹下有四个文件夹,分别是BL原创 2010-01-26 20:12:00 · 1780 阅读 · 0 评论 -
u-boot中.lds连接脚本文件的分析
对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下GNU官方网站上对.lds文件形式的完整描述:SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { conte转载 2011-12-06 16:43:39 · 840 阅读 · 0 评论