ARM裸机
文章平均质量分 77
加油11
模仿模仿再模仿!
展开
-
X210核心板、底板原理图、数据手册导读
1 有用的资料写代码时需要查阅和参考的资料有:核心板原理图、底板原理图、相应硬件的数据手册、S5PV210数据手册。原创 2017-11-06 22:41:22 · 1006 阅读 · 0 评论 -
S5PV210的时钟系统
1 SoC时钟系统简介1.1 什么是时钟?SoC为什么需要时钟?(1)时钟是同步工作系统的同步节拍。(2)SoC内部有很多器件,譬如CPU、串口控制器、DRAM控制器、GPIO等内部外设,这些东西要彼此协同工作,需要一个同步的时钟系统来指挥。这个就是我们SoC的时钟系统。1.2 时钟一般如何获得(1)SoC的时钟获得一般有: 外部直接输入时钟信号,SoC有个引脚用来输入外部时钟信号,用的很少。原创 2017-12-28 11:48:56 · 612 阅读 · 0 评论 -
mkv210_image.c文件详解
1 裸机程序Makefile介绍led.bin: start.o arm-linux-ld -Ttext 0x0 -o led.elf $^ arm-linux-objcopy -O binary led.elf led.bin arm-linux-objdump -D led.elf > led_elf.dis gcc mkv210_image.c -o mkx2原创 2017-11-26 10:14:15 · 535 阅读 · 0 评论 -
Makefile简要介绍
1 为什么需要MakefileMakefile是用来管理工程的。在一个正式的软件项目中,由很多个.c和.h文件构成,此时如果直接在命令行编译,就会像这样:gcc a.c b.c c.c d.c e.c f.c g.c -o exe 。 每次编译都要输入一堆东西很麻烦,这个问题严重影响工作效率,怎么办?Makefile来解决。2 一个简单的Makefile示例exe: a.c b.c gc原创 2017-11-23 20:32:34 · 253 阅读 · 0 评论 -
重定位引入和链接脚本
1 一个事实:大部分指令是位置有关编码位置无关编码(PIC,position independent code):汇编源文件被编码成二进制可执行程序时编码方式与位置(内存地址)无关。 位置有关编码:汇编源码编码成二进制可执行程序后和内存地址是有关的。我们在设计一个程序时,会给这个程序指定一个运行地址(链接地址)。就是说我们在编译程序时其实心里是知道我们程序将来被运行时的地址(运行地址)的,而且必须原创 2017-12-03 09:05:26 · 796 阅读 · 0 评论 -
汇编写启动代码之开iCache
1 什么是cache,有什么用cache是一种内存,叫高速缓存。从容量来说:CPU < 寄存器 < cache < DDR 从速度来说:CPU > 寄存器 > cache > DDRcache的存在,是因为寄存器和ddr之间速度差异太大,ddr的速度远不能满足寄存器的需要(不能满足cpu的需要,所以没有cache会拉低整个系统的整体速度)。整个系统中CPU的供应链由:寄存器+cache+DDR+原创 2017-12-02 21:36:09 · 689 阅读 · 0 评论 -
汇编写启动代码之设置栈和调用C语言
1 C语言运行时需要和栈的意义“C语言运行时(runtime)”需要一定的条件,这些条件由汇编来提供。C语言运行时主要是需要栈。C语言与栈的关系:C语言中的局部变量都是用栈来实现的。如果我们汇编部分没有给C部分预先设置合理合法的栈地址,那么C代码中定义的局部变量就会落空,整个程序就死掉了。我们平时在编写单片机程序(譬如51单片机)或者编写应用程序时并没有去设置栈,但是C程序还是可以运行的。原因是:在原创 2017-12-02 16:37:46 · 597 阅读 · 0 评论 -
汇编写启动代码之关看门狗
1 什么是看门狗?看门狗(watch dog timer 看门狗定时器)。大家想象这样一个场景:家门口有一只狗,这个狗定时会饿(譬如说2小时一饿),够饿了会胡乱咬死人。人进进出出要想保证安全必须提前喂狗(必须在上次喂过后的2小时内喂狗才行)。如果超时没喂狗就会被咬死,如果提前喂狗没关系,但是本次喂狗时间就会从这里开始计算。现实中因为一些外部因素,电子设备经常会跑飞或者死机(譬如极端炎热、极端寒冷、工原创 2017-12-02 10:53:42 · 785 阅读 · 0 评论 -
一步步点亮LED
1 硬件工作原理及原理图查阅1.1 LED物理特性介绍LED本身有2个接线点,一个是LED的正极,一个是LED的负极。LED这个硬件的功能就是点亮或者不亮,物理上想要点亮一颗LED只需要给它的正负极上加正电压即可,要熄灭一颗LED只需要去掉电压即可。1.2 查阅原理图了解板载LED硬件接法查阅原理图,发现开发板上一共有4颗LED。这4颗LED的接法是:正极接3.3V,负极接了SoC上的一个引脚(GP原创 2017-11-27 22:23:42 · 674 阅读 · 0 评论 -
反汇编工具objdump的使用简介
1 反汇编的原理&为什么要反汇编arm-linux-objdump -D led.elf > led_elf.disobjdump是gcc工具链中的反汇编工具,作用是由编译链接好的elf格式的可执行程序反过来得到汇编源代码。-D表示反汇编 > 左边的是elf的可执行程序(反汇编时的原材料),>右边的是反汇编生成的反汇编程序。反汇编的原因有以下: 1.逆向破解。 2.调试程序时,反原创 2017-11-30 23:14:39 · 2880 阅读 · 0 评论 -
开发板刷系统(X210V3S)
1 准备工作1.1 什么是刷系统刷系统就是利用刷机工具,向开发板中烧录预先编译好的系统镜像,使之在开发板上运行起来。1.2 串口输出的意义(做系统控制台)串口是一种硬件通信口,很多年前的时候串口是CPU之间进行通信的主要接口。但是现在因为串口通信的速度很低,所以现在串口主要是用来做程序输出监控、调试。桌面电脑可以打开一个虚拟控制台,嵌入式系统一般是用串口来做控制台的。一般是用一根串口线连接开发板的串原创 2017-11-01 22:15:19 · 849 阅读 · 0 评论 -
自己动手安装交叉编译工具链
1 Windows中装软件的特点Windows中装软件使用安装包,安装包解压后有2种情况:一种是一个安装文件(.exe .msi),双击进行安装,下一步直到安装完毕。安装完毕后会在桌面上生成快捷方式,我们平时使用快捷方式来启动这些程序;另一种是所谓的绿色软件、免安装软件。这种不用安装,直接解压开里面就有exe可以直接双击执行。2 linux中装软件的特点linux中安装软件比windows中复杂。l原创 2017-11-19 21:12:29 · 1077 阅读 · 1 评论 -
裸机实验体验之SD卡下载
1 背景知识一般情况下,用USB下载来调试裸机程序比较方便;但是有时候电脑使用dnw会频繁蓝屏,这时候用SD卡下载调试是不错选择。把OM5打开GND,以从SD通道启动。从SD启动时会先从iNand(SD0)启动执行,当iNand启动做校验和时失败才会转为启动SD2。而我们做裸机实验时是通过SD2来提供裸机程序镜像的,因此需要先破坏内部iNand的uboot才可以强迫开发板从SD2启动去执行我们的裸机原创 2017-11-18 21:33:33 · 283 阅读 · 0 评论 -
裸机实验体验之usb启动配合dnw工具下载
1 背景知识介绍回顾S5PV210的启动方式,必须将OM5打到VCC,才能从USB启动。S5PV210的启动过程:开机时先执行内部的iROM中的BL0,然后BL0做了一系列的初始化后,再读取外部OMpin的设置来确定用户选择了从哪里启动。当检测到我们设置的是USB启动时,S5PV210就会从USB OTG接口试图连接主机进行下载启动。2 dnw工具介绍dnw是一个软件,是三星公司编写的,这个软件的功原创 2017-11-14 00:15:45 · 252 阅读 · 0 评论 -
linux下dnw软件的使用
1 linux下dnw获取(1)源码包获取 (2)编译和安装 tar -jxvf dn2-linux-x210.tar.bz2 编译: make sudo make install2 开发板连接到linux下(1)开发板设置USB启动,开机,windows设备管理器中提示发现新硬件 (2)VMware菜单:虚拟机->可移动设备->Samsung S5PC110 SEC Test B/D,原创 2017-11-18 11:23:26 · 738 阅读 · 0 评论 -
汇编初始化SDRAM
1 SDRAM引入1.1 SDRAM和DDR基本概念SDRAM:Syncronized Dynamic Ramdam Access Memory,同步动态随机存储器。DDR:DDR就是DDR SDRAM,是SDRAM的升级版。(DDR:Double Data Rate双倍速率同步动态随机存储器,双倍速度的SDRAM)DDR有好多代:DDR1、DDR2、DDR3、DDR4、LPDDR。1.2 SDRA原创 2017-12-21 11:14:44 · 1251 阅读 · 0 评论