
嵌入式ARM-bootloader
jefbai
喜欢编程,热爱探索!
展开
-
嵌入式bootloader开发之二(Tiny 6410)
在上一篇中,已经搭建好了基本环境,本篇主要记录如何开发裸机程序并运行之。同样,以最经典的hello,world程序作为开始,我们编写源码如下:void (*show)(char *,...);int main(int argc,char **argv){ show = 0xc7e13140; show("hello,u-boot\n");}其中show函数是原创 2013-10-31 13:19:34 · 1017 阅读 · 0 评论 -
嵌入式bootloader开发之零----虚拟机环境配置(Tiny 6410)
之前开发bootloader程序的时候都是直接关机,然后切换到Linux系统下,接着再开发,可是发现有一些问题:第一,不能通过Superboot直接烧写uboot文件到NAND FLASH中;第二,系统切换比较麻烦,而且配置网络啊什么的;第三,因为在XP下还需要进行VxWorks开发,所以想了想还是决定按照Tiny6410官方要求的安装VMWARE,然后再虚拟机中安装Fedora9-i386版本,原创 2013-11-23 22:51:02 · 1404 阅读 · 0 评论 -
嵌入式bootloader开发之九----键盘中断控制LED灯(Tiny 6410)
概要: 本节主要记录在Tiny 6410开发板中编写的裸机程序按键中断控制LED灯的亮灭。Tiny6410中配置了8个用户定义的按键,本文使用了KEY1来控制LED1~LED4的亮灭。按键和LED的电路图如下:K1对应的是外部中断EINT0,LED1~LED4的配置方法和文章嵌入式bootloader开发之六(Tiny 6410)http://blog.cs原创 2013-11-12 13:28:09 · 1510 阅读 · 0 评论 -
嵌入式bootloader开发之八----NAND Flash读写擦除操作实现(Tiny 6410)
概要: 本节主要记录开发Tiny6410自带的NAND FLASH的过程,实现了NAND FLASH的擦除,读写数据功能,但都只是简单的实现而已,并没有做精细而完整的实现,毕竟只是想学原理。前言: 工欲善其事,必先利其器。在做开发之前,必须保证良好的环境和设备,笔者所使用的tiny6410光盘中自带的uboot版本比较老,而且其并不支持MLC2的读写操作,原创 2013-11-10 22:00:25 · 3885 阅读 · 0 评论 -
嵌入式bootloader开发之七---裸机watchdog中断开发(Tiny 6410)
概要: 本节主要记录watchdog的复位和时钟中断配置方法。 S3C6410中和S3C2410,S3C2440中断管理方法不太一样,它有2个硬件中断控制器VIC0和VIC1来进行中断向量地址的保存和自动跳转,从一定程度上方便了开发者,但是对于我这个小白来说这无疑没什么优势,看的是2440的中断控制方法,却要在6410上使用。而且自己没有实际接触过A原创 2013-11-05 21:46:36 · 860 阅读 · 0 评论 -
嵌入式bootloader开发之六(Tiny 6410)
概要: 本节记录有关S3C6410的GPIO配置的有关知识,以点亮LED灯配置为例。 友善之臂Tiny6410开放板的核心板上提供了5个LED灯,一个用于指示系统是否运行,其他四个是可以由用户配置的LED灯。电路连接情况如下:LED1~LED4分别对应于GPK4~GPK7,由S3C6410开发手册中查阅到这些GPIO所映射的内存地址原创 2013-11-05 20:40:48 · 1436 阅读 · 0 评论 -
嵌入式bootloader开发之五(Tiny 6410)
本节主要记录有关UART的配置和数据传输方法。UART其实从原理上讲是不怎么难的,可是不知怎么回事,这次这个实验却花了我很长很长的时间。 首先是刚开始的时候看视频,看完视频接着就需要另外一个串口来连接开发板,但是实验室的台式机却只有一个串口,想过再找一个串口插上去,或者直接用USB转串口(这个线我恰好有)于是就自己折腾了一下,可是发现怎么连也没反应,也不知道是USB-原创 2013-11-04 06:15:51 · 1052 阅读 · 0 评论 -
嵌入式bootloader开发之一(Tiny 6410)
在看尚观发布的嵌入式bootloader开发视频,听起来感觉还行,都基本会,但手里面只有友善之臂TIny6410开发板,还好这个开发板上已经有移植好的u-boot,而且SOC和视频上所说的差不多,一个是2410,一个是6410.只是后者是基于ARM11,而前者是比较老的ARM9.首先搭建开发环境,centos6.4x64版本,系统相对比较新minicom安装:yum -y inst原创 2013-10-31 02:03:51 · 1673 阅读 · 0 评论 -
嵌入式bootloader开发之四(Tiny 6410)
概要: 本节主要记录配置watchdog产生复位信号的过程,以及一点点的中断控制知识 上一节主要记录了ARM汇编的一些基础知识,本节内容将阅读S3C6410的数据手册,访问WatchDog的一些必须的寄存器,并进行相应的配置。 代码如下://watch dog#define WTCON (*(volatile unsign原创 2013-11-02 00:09:54 · 690 阅读 · 0 评论 -
嵌入式bootloader开发之三(Tiny 6410)
在上一篇中依赖于C语言函数,简单的演示了如何在uboot下运行hello,world代码,但是在实际编写底层代码的时候,很多情况下都需要使用到汇编语言,汇编语言是为了方便人类记忆机器指令而发明的一种语言,它和机器指令是一一对应的关系。ARM从大的方向上来讲属于RISC指令体系结构,指令集相对容易掌握,下面主要通过将上一篇中的代码用汇编语言实现来试图掌握汇编语言的写法。在此之前,需要介绍原创 2013-10-31 16:14:33 · 1219 阅读 · 0 评论 -
嵌入式bootloader开发之十-------裸机程序LED开发(Tiny 6410)
在看完尚观的S3C2440嵌入式bootloader视频后,想做有关DRAM的实验,但是发现DRAM配置和Tiny 6410相差甚远,很多方面也无法契合,于是开始在网上找新的讲解有关S3C6410裸机开发的例子,有幸找到了韦东山老师的视频,跟着他讲的开始先做简单的LED实验,在做第三个时候发现一个很明显的问题,就是在提供的源码中调用了delay函数,而却并没有进行相应的时钟设置,所以试了很多次都是原创 2013-11-23 23:10:44 · 1132 阅读 · 0 评论