嵌入式裸机开发
_参天小草_
这个作者很懒,什么都没留下…
展开
-
ARM处理器启动流程
介绍S3c2440、S3c6410、S5pv210这三种芯片的启动方式,地址布局,启动流程。原创 2015-08-24 21:00:52 · 878 阅读 · 0 评论 -
从BL1跳转到BL2
跳转的方式有两种,相对跳转和绝对跳转。 相对跳转也即用B,BL汇编指令; 绝对跳转即对PC寄存器赋值。 从BL1跳转到BL2采用绝对跳转。原创 2015-08-26 19:44:17 · 1024 阅读 · 0 评论 -
点亮LED灯
介绍了如何在ARM系统中通过设置GPIO口来点亮LED灯原创 2015-08-25 19:32:16 · 1033 阅读 · 0 评论 -
设置SVC模式
Linux系统和bootloader应该运行在svc模式(supervisor),这可以通过修改程序状态寄存器来设置。原创 2015-08-25 19:09:06 · 1564 阅读 · 0 评论 -
栈初始化
bootloader中即用到汇编语言,也用到c语言 汇编语言:核心初始化 c语言:完成板载硬件的初始化 要使用c语言,首先要初始化c语言编程环境,包括栈初始化和bss段初始化。原创 2015-08-26 16:23:15 · 15257 阅读 · 0 评论 -
S5PV210内存初始化
S5PV210内存初始化原创 2015-08-26 15:46:09 · 446 阅读 · 0 评论 -
S3C6410内存初始化
S3C6410处理器拥有32根地址线,寻址空间为4G。其中高2G为保留区,低2G又可以分为:主存储区和外设区。外设区主要是S3C6410的内部寄存器; 主存储区又可以分为Boot镜像区、内部存储区、静态存储区、保留区、动态存储区五部分。原创 2015-08-26 15:44:13 · 638 阅读 · 0 评论 -
内存简介
介绍了内存的种类以及内部结构原创 2015-08-26 10:29:58 · 495 阅读 · 0 评论 -
关闭中断
关闭中断分为两部分: ①在状态寄存器CPSR中屏蔽中断和快速中断 ②设置中断屏蔽寄存器原创 2015-08-25 19:14:45 · 2584 阅读 · 0 评论 -
按键中断
CPU在工作的过程中,经常需要与外设进行交互,交互的方式包括“轮询方式”,“中断方式”。原创 2015-08-26 20:37:22 · 1266 阅读 · 0 评论 -
ARP协议的实现
通过ARP协议,开发板给pc机发送一个以太网数据包,pc机接收到数据包并发送一个应答包,开发板接收应答包并提取数据,根据数据判断DM9000的驱动程序是否正确。原创 2015-08-27 20:22:51 · 1892 阅读 · 0 评论 -
bootm命令移植
bootloader的作用有两个,一是初始化软硬件,二是启动操作系统。bootm命令是从内存中运行某一程序,通常用该命令来启动操作系统。比如通过tftp下载内核到内存0x31000000处,可通过执行指令bootm 31000000启动内核。原创 2015-08-27 20:35:15 · 517 阅读 · 0 评论 -
NandFlash驱动设计
NandFlash种类nandflash在嵌入式系统中的角色和硬盘在电脑中的角色一样。原创 2015-08-26 20:56:49 · 687 阅读 · 0 评论 -
makefile工程管理
make的工作主要依赖于makefile文件。makefile文件描述了整个程序的编译、链接等规则。原创 2015-08-23 21:18:38 · 530 阅读 · 0 评论 -
触摸屏驱动程序设计
触摸屏作为一种输入设备,是目前最简单、方便的一种人机交互方式,具有坚固耐用、反应速度快、节省空间、易于交流等优点。原创 2015-08-27 19:00:36 · 1319 阅读 · 0 评论 -
tftp协议的实现
tftp是一个传输文件的简单协议,它是基于UDP协议实现的,端口号为69.服务器启动tftp后,客户端就可以通过tftp从服务器下载文件。在嵌入式开发中,可利用tftp协议下载Linux内核到开发板运行。TFTP的工作都是由客户端发起一个读请求包RRQ或者写请求包WRQ开始的。原创 2015-08-27 20:31:17 · 1145 阅读 · 0 评论 -
LCD驱动程序设计
先讲LCD工作原理,分为LCD硬件体系架构,LCD显示流程和显示信号。原创 2015-08-27 18:54:50 · 1243 阅读 · 0 评论 -
DMA驱动程序设计
通过串口发送数据的实质是:内存保存着字符串,cpu将字符一一写入串口寄存器。在这个过程中,cpu被占用着,导致效率低;若有其它硬件可以代替cpu完成该工作,则cpu可以被释放出来。该硬件为DMA控制器,该机制称为DMA。原创 2015-08-27 17:02:42 · 1614 阅读 · 0 评论 -
利用串口建立控制台
控制台:嵌入式设备提供给开发者的用于控制嵌入式设备的输入输出平台原创 2015-08-26 21:59:41 · 595 阅读 · 0 评论 -
S3C2440串口驱动程序设计
S3C2440串口驱动程序设计原创 2015-08-26 21:49:58 · 1498 阅读 · 0 评论 -
makefile编写例程
一个makefile编写实例原创 2015-08-27 20:38:01 · 705 阅读 · 0 评论 -
网卡驱动程序设计
以DM9000芯片为例,介绍了该网卡的驱动程序设计原创 2015-08-27 19:08:14 · 708 阅读 · 0 评论 -
MMU初始化
MMU是Memory Management Unit的缩写,中文名是内存管理单元,它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路,同时也负责虚拟地址映射为物理地址,以及提供硬件机制的内存访问授权。原创 2015-08-26 20:29:06 · 1300 阅读 · 0 评论 -
代码搬移
代码搬移:将nand flash中的bootloader拷贝到内存原创 2015-08-26 16:11:41 · 855 阅读 · 1 评论 -
bss段初始化
初始化的全局变量存放在数据段; 局部变量存放在栈; malloc分配的空间来自堆; 未初始化全局变量存放在bss段。 由此可以看出bss段的作用:保存未初始化的全局变量。原创 2015-08-26 16:26:46 · 1607 阅读 · 0 评论 -
链接地址和存储地址
区分链接地址和存储地址转载 2015-08-24 21:06:06 · 656 阅读 · 0 评论 -
ARM伪指令
ARM伪指令的学习,分为ARM机器码、定义类伪指令、操作类伪指令三部分。原创 2015-08-24 20:38:17 · 623 阅读 · 0 评论 -
数据对齐
许多计算机系统对数据类型的合法地址做了一些限制,要求某种数据类型对象的地址必须是某个值K(2,4,8)的倍数,这种堆积限制简化形成了处理器和存储器系统之间接口的硬件设计,总之就是为了方便高效的读取数据,于是就有了数据对齐转载 2015-08-23 21:29:39 · 372 阅读 · 0 评论 -
ARM处理器比较:A8/A9
Cortex-A9处理器和Cortex-A8处理器架构解析转载 2015-08-23 21:39:36 · 1957 阅读 · 0 评论 -
ARM介绍
介绍区分了与ARM相关的一些常见名词原创 2015-08-23 21:33:31 · 411 阅读 · 0 评论 -
交叉工具链
对于源文件hello.c 使用gcc编译:gcc -static hello.c -o hello,得到的hello可在虚拟机中正常运行,但将这个hello复制到开发板的linux系统中,hello无法正确运行; 使用arm-linux-gcc编译:arm-linux-gcc -static hello.c -o hello,得到的hello可在开发板的linux系统中正常运行。原创 2015-08-23 21:15:41 · 491 阅读 · 0 评论 -
裸机开发前准备
裸机开发前的一些准备原创 2015-08-23 21:12:08 · 361 阅读 · 0 评论 -
ARM处理器工作模式
ARM处理器支持七种工作模式,其中Linux系统中应用程序运行在User模式; Linux内核运行在Supervisor模式。原创 2015-08-24 19:14:16 · 512 阅读 · 0 评论 -
链接器脚本
链接器脚本构成:段、起始链接地址、对齐、变量、代码段首文件原创 2015-08-23 21:22:10 · 1170 阅读 · 0 评论 -
uboot工作流程分析
uboot工作流程分析主要设计三个知识点: ①寻找程序入口 ②第一阶段程序(BL1)分析 ③第二阶段程序(BL2)分析以2440为例子作为说明原创 2015-08-24 21:08:11 · 478 阅读 · 0 评论 -
ARM处理器寄存器
ARM处理器共有37个寄存器,其中31个通用寄存器,6个状态寄存器。原创 2015-08-24 19:56:24 · 724 阅读 · 2 评论 -
汇编语言学习
ARM9,ARM11,cortex系列的处理器都是中高端处理器,利用这些处理器来完成项目时我们不会纯粹使用汇编来编写工程,但在bootloader和内核这两部分的初始化代码中会使用到汇编编程,这是学习汇编语言的语言。一般来说,工作中使用到汇编编程的地方有:①启动代码②对效率有特殊要求的地方。原创 2015-08-24 20:03:05 · 558 阅读 · 0 评论 -
设置异常向量表
异常:因为内部或者外部的一些事件,导致处理器停下正在处理的工作,转而去处理这些发生的事件。 ARM处理器支持的异常类型为:由图可知,ARM处理器支持7种异常类型,分别是重新启动,未定义指令,软中断,预取异常,数据异常,中断,快速中断。原创 2015-08-25 19:03:38 · 4908 阅读 · 0 评论 -
C与汇编混合编程
虽然汇编语言编写繁琐,但执行效率高,能够更加直接地控制寄存器,因此有时在c语言中需要与汇编混合编程。原创 2015-08-26 20:04:53 · 666 阅读 · 0 评论 -
S3C2440内存初始化
共三部分:①2440地址空间 ②内存与芯片硬件连接 ③存储控制器寄存器原创 2015-08-26 10:48:47 · 1631 阅读 · 0 评论