- 博客(11)
- 资源 (5)
- 收藏
- 关注
原创 准备开始移植u-boot
<br /> 最近看了不少u-boot源代码和一些分析得文章,start.S的汇编部分理解得差不多了,C语言部分的大概架构也了解了,但是关于驱动的部分还没有细看!但是我打算先移植一个具备最简单功能的uboot,能在开发板上跑起来,然后再把一些复杂的驱动如Nand Flash或网卡驱动添加上去!<br /> <br />目标:在PC是编译好U-Boot,生成Bin文件,将开发板与PC通过串口和USB口相连,把生成的Bin文件通过USB口下载到开发板上RAM里,从RAM里直接运行,查看串口是否按要求输
2011-05-08 17:07:00 460
原创 关于在u-boot汇编中设置与初始化时钟频率的解析
<br /> 本文主要针对S3C2440分析<br /> <br />S3C2440的主时钟源来自外部晶振(XTIPLL)或外部时钟(EXTCLK)。S3C2440有两个PLL(phase locked loop)一个是MPLL,一个是UPLL。MPLL用于CPU及其他外围器件,UPLL用于USB。 <br />1,MPLL, 用于产生FCLK, HCLK, PCLK三种频率, 这三种频率分别有不同的用途:<br /> FCLK是CPU提供的时钟信号。<br /> HCLK是为AH
2011-05-08 17:00:00 2059
原创 按键中断,点亮LED实验
硬件:mini2440开发板编译环境:ads烧写到nand flash1, 按键本开发板总共有 6 个用户测试用按键,它们均从 CPU 中断引脚直接引出,属于低电平触发,这些引脚也可以复用为 GPIO 和特殊功能口,为了用户把它们引出作为其他用途,这 6 个引脚也通过 CON12 引出,6个按键和CON12 的定义如下K1K2K3K4K5K6对应中断EINT8EINT11EIN13EINT14EINT15EINT19GPIOGPG0GPG3GPG5GPG6GPG7 GPG11GPGCON_BIT[1:0]
2011-05-07 21:13:00 1735
原创 控制GPIO, 点亮led,实现跑马灯
ads下编译调试运行成功,然后烧写到nand flash,从nand flash启动但是烧写的到nand flash运行时,led4一直都不亮,问题还没解决,我想是不是堆栈指针设置有问题;******************************************************************************; File:init.S; 功能:通过它转入C程序;*********************************************************
2011-05-02 13:07:00 2735
转载 Image$$RO$$Limit ARM中的RO、RW和ZI DATA
Image$$RO$$Limit ARM中的RO、RW和ZI DATA 2009-07-07 17:37 IMPORT |Image$$RO$$Limit| IMPORT |Image$$RW$$Base| IMPORT |Image$$ZI$$Base| IMPORT |Image$$ZI$$Limit| IMPORT |Image$$RW$$Limit| 从ADS1.2的帮助文档可以看出以下几个symbol的定义应该是:|Image$$RO$$Base| 表示RO
2011-05-01 14:49:00 551
转载 bootloader与ads设置
<br />1. 所先在Target Settings里的Linker 选种 ARM Linker, Post-linker 选种ARM fromELF<br />使得工程连接后在通过fromELF产生2进制代码<br />如图<br /><br />2. 在ARM Linker 有2个非常重要的设置<br />第一个,output中 RO base 和RW base<br />第二个,Layout中 Object/symbol与section<br />好现在要重点讲这两个设置,大家不妨打开bios的源代
2011-05-01 14:37:00 594
转载 用ADS调试硬件过程
ADS和AXD工具,用来建立ARM硬件调试环境,同写单片机程序用到的KEIL C51差不多。完全是对硬件的操作,与OS无关称为裸机程序,一般用来测试硬件的。这里写的程序也可以方便的移植到操作系统中。 注意的是:每建立一个工程文件后,都需要配置工程选项。一、建立ADS工程1. 打开ADS(ARM Develop Suite)。File——NEW——Project——ARM Executable Image——输入Project Name和Location(注意路径为英文名)。2. 向工程中加入
2011-05-01 14:14:00 1393
转载 ARM的ADS汇编器与GCC汇编器
<br />汇编器与指令集,不同的CPU对应不同的指令集;不同的汇编器对应不同的语法和伪指令集。<br />每种汇编器都可以有自己的伪指令集和自己的语法,但实际上,由于事实标准的原因,(所有的CPU厂商会提供指令使用手册,手册中的指令书写样式,实际上就是事实汇编语法,何况CPU厂商肯定会提供自己的汇编器的),现代大多数的汇编器都会在主流的汇编语法Intel型和AT&T型这两类语法中选择一种作为自己的语法(Intel型可能会越来越流行)。<br />ARM官方提供的汇编器/指令手册中使用的是Intel型语法,
2011-05-01 12:27:00 1911
转载 ARM堆栈方式
<br />当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(Full Stack);<br />当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(Empty Stack)。<br />同时,根据堆栈的生成方式,又可以分为递增堆栈(Ascending Stack)和递减堆栈(DecendingStack)。<br />当堆栈由低地址向高地址生成时,称为递增堆栈,当堆栈由高地址向低地址生成时,称为递减堆栈。 <br /> <br />这样就有四种类型的堆栈工作方式,ARM 微处理器支持这四种类型的堆栈工作
2011-05-01 10:22:00 14073
转载 C语言自定义寄存器操作的一些方法
1 寄存器地址的定义: #define UART_BASE_ADRS (0x10000000) /* 串口的基地址 */ #define UART_RHR *(volatile unsigned char *)(UART_BASE_ADRS + 0) /* 数据接受寄存器 */ #define UART_THR *(volatile unsigned char *)(UART_BASE_ADRS + 0) /* 数据发送寄存器 */ 2 寄存器读写操作: UART_THR = ch
2011-04-30 19:57:00 12493 1
原创 开始记录我的嵌入式之旅
<br />1,了解arm板的基本结构和原理,学会arm汇编,写几个裸机程序,学会控制硬件。<br />2,参考资料移植bootloader,然后学习linux内核基础,裁剪,配置,编译内核。<br />3,学习编写驱动程序<br />4,深入学习linux内核
2011-04-30 11:03:00 823 2
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人