ARM裸机
阿C_C
Fucking the Code!
展开
-
ARM汇编指令集
ARM汇编指令集的介绍,包括指令和伪指令。指令和伪指令概念指令指令指的是CPU机器指令的助记符,是由CPU的指令集提供的,经过编译之后,会以二进制机器码的形式由CPU读取执行伪指令伪指令本质上不是指令,和CPU的机器指令没有任何关系,只是和指令一起写在代码中而已,是由编译器环境提供的,其目的是用于指导编译过程,伪指令经过编译后不会生成二进制机器码,仅仅在编译阶段有效果指令编程风格ARM官方风格官方风原创 2016-06-26 10:13:22 · 10173 阅读 · 0 评论 -
触摸屏
输入类设备IO输入输出是计算机中重要的概念,计算机通过输入从外部获取数据然后进行计算,然后通过输出向外部输出计算结果,计算机通过IO和外部进行交互,每台计算机都有标准输入,标准输出,在编程中还有标准错误输出的概念。常见输入类设备常见的输入类设备有键盘,鼠标,触摸屏,游戏机手柄,摇杆,摄像头,扫描仪,传感器等触摸屏的特点触摸屏,尤其是电容式触摸屏,和人和显示器的关系很紧密,几乎是原创 2016-10-27 23:11:48 · 920 阅读 · 0 评论 -
I2C通信和ADC
I2C接口I2C接口只有两根线,SCL和SDA:SCL:时钟线,传输时钟信号,由主设备向从设备传输时钟信号,SDA:数据线,传输数据信号,主从设备之间相互传递数据的通道I2C属于串行通信,数据以bit为单位在SDA线上串行依次传输,同步工作状态,主从设备工作在同一个时钟频率下,通过SCL线同步时钟,I2C传输电平信号,不需要很高的速度,通信双方距离很近,所以不需要差分信号来抗干扰,I2C通常用原创 2016-10-03 22:48:52 · 13194 阅读 · 0 评论 -
NandFlash和iNand
NandFlashNand型号和命名例如K9F2G08这个NandFlash,K9F表示三星公司的NandFlash,2G表示2Gbit,08表示该Nand有8位数据位。Nand数据位Nand的数据位有8位和16位之分,软件应该根据实际采用的Nand来进行设计和编写。Nand采用并行接口存储,数据位上传递的不一定是纯数据,也可能是命令,地址等。Nand功能框图框图如原创 2016-10-02 22:54:12 · 2433 阅读 · 0 评论 -
使用SD卡启动
主流外存储设备我们一般把RAM叫做内存,ROM叫做外存,常见的外部存储器有:磁带,CD,软盘,硬盘,光盘等磁性存储设备,技术成熟,价格便宜,但是读写速度和可靠性不足,桌面电脑使用较多,嵌入式设备一般不采用Flash存储设备:使用电学原理存储,没有物理动作,损耗小,读写速度较快,在嵌入式设备中应用较多 纯粹测NandFlash,NorFlash,出现的最早,最原始的Flash颗粒,对存原创 2016-10-01 20:29:04 · 2487 阅读 · 0 评论 -
LCD
LCD分类和特点LCD背光是白色的,白光的像素值是255,255,255,通过白光可以显示任何其他颜色的光,LCD分很多种:TN面板:最早的面板,响应性不够强,有拖尾现象STN面板:解决了拖尾现象TFT面板:超薄 - 其他显示技术CRT阴极摄像管显示器,寿命短,体积较大,、等离子显示器,未成 主流OLED,可以实现柔性 显示LED,户外大屏幕,照明LCD接口原创 2016-10-23 17:44:56 · 1922 阅读 · 0 评论 -
定时器,看门狗&RTC
定时器作为Soc中的常见外设,和其他外设并没有什么不同,通常和计数器联系在一起,定时器常用来实现定时执行代码,相当于Soc的闹钟,可以让Soc具有计时功能。定时器原理定时器通过内部的计数器的计数来实现的,计数器根据时钟频率来工作,时钟源来自APB总线,通过时钟模块的分频器分频之后到达计数器,每个时钟周期计一个数,定时器的时间就是计数器的计数值*时钟周期,定时器中有一个TCNT寄存器,计时开始时放入一原创 2016-09-25 17:59:16 · 5419 阅读 · 0 评论 -
按键和中断
按键原创 2016-09-10 13:20:05 · 6622 阅读 · 0 评论 -
串口通信
串口基本概念通信基础通信中的两个重要方面:信息的表示和解析方式,通信双方需要事先约定好,应该保持一致信息的传递方式,信息在传输介质上的传输过程通信过程分为编码,传输,解码三个基本步骤。电子通信概念同步通信和异步通信同步:发送方和接收方按照同一个时钟节拍工作,这种方式配合很好,但是,需要发送方需要同时发送时钟信号给接收方,接收方根据时钟信号安排自己的工作节拍原创 2016-09-09 17:56:54 · 998 阅读 · 0 评论 -
时钟系统
时钟系统需要理解其概念,然后会控制时钟系统即可。时钟概念时钟可以理解为一个根据同步节拍而进行同步工作的系统,Soc内部有CPU和一系列的内部和外部外设,这些都要同步的进行工作,需要有一个共同时钟系统来同步指挥,就Soc的时钟,时钟可以产生同步信号,来指挥CPU和外设进行同步工作。 时钟可以从外部输入获得,例如通过引脚获得时钟频率,也可以通过外部晶振+内部时钟发生器,还可以添加内部原创 2016-07-19 22:31:41 · 6737 阅读 · 0 评论 -
交叉编译环境
搭建嵌入式交叉编译环境简单教程。GCC交叉编译工具链安装将光盘中toolchain工具链拷贝到linux中,选择一个目录安装,我安装在/usr/local/arm目录下,没有该目录可以自行创建设置环境变量设置环境变量,可以编辑家目录下的”.bashrc”文件,添加”export PATH=$PATH:/usr/local/arm/bin”,然后执行命令”source .bashrc”即可.可以为每一原创 2016-07-02 14:00:11 · 1001 阅读 · 0 评论 -
裸机开发之点亮LED
基于X210开发板的LED灯点亮。原理图和引脚分析查阅底板原理图可以得到,四个LED引脚分别为:D22:GPJ0_3D23:GPJ0_4D24:GPJ0_5D25:PWMTOUT1其中PWMTOUT1引脚与核心板的GPD0_1引脚相连,所以可以通过操作GPD0_1引脚来操作D25。原创 2016-07-04 22:51:23 · 1104 阅读 · 0 评论 -
重定位和链接
链接和重定位是嵌入式C中很重要的部分,对于这一块掌握的越精细越好。指令位置分类指令分为两种:位置无关编码(PIC):汇编源文件被编码成二进制可执行程序时编码方式与位置(内存地址)无关位置相关编码:汇编源文件被编码成二进制可执行程序时编码方式与位置(内存地址)相关在程序设计编译链接过程会给程序一个运行地址,而且必须给编译连接器指定这个地址,最后得到的二进制程序是和指定的原创 2016-07-10 11:32:44 · 8112 阅读 · 0 评论 -
开发板镜像烧写
本片文章属于ARM裸机教程,记录在九鼎X210VB3S开发板上烧写系统镜像的几种方式。基本操作刷系统其实就是利用刷机工具,下载系统镜像到NAND或者Nor Flash中,使其在开发板上运行起来,专业一点叫做烧录;烧写系统镜像需要使用串口通信,串口其实是一种硬件通信接口,用于在开发板和其他设备之间进行通信,现在的串口通常用来做调试使用,当做嵌入式系统控制台来使用,一般使用串口线连原创 2016-06-27 20:21:30 · 4143 阅读 · 0 评论 -
汇编启动
使用汇编代码启动S5PV210开发板。使用汇编进行启动,需要经过下面几个基本步骤:关看门狗设置栈初始化iCache看门狗看门狗的概念看门狗,watchDog Timer,其实是一个定时器,这个定时器每隔固定时间会发出一次让CPU复位的指令,以防止CPU跑飞或者出现其他异常,之后可以复位重置。为什么要喂狗在启动阶段如果不去喂狗,则看门狗就会发出复位指令,所原创 2016-07-09 10:05:29 · 783 阅读 · 0 评论 -
ARM体系结构(二)
ARM体系结构第二篇,主要理解CPU的内存接口,ARM启动过程。内存映射S5PV210属于Cortex-A8架构,有32位地址线和32位数据线,所以CPU的地址空间为4G,但是由于使用了统一编址,外设占用了一部分地址空间,实际供内存使用的地址空间将小于4G,那么对于这个4G的地址空间的分配,就是内存映射,或者说叫地址映射,下图是S5PV210的内存映射分布图,来自于用户手册: 内存分布的描述: i原创 2016-06-25 22:25:19 · 8542 阅读 · 0 评论 -
ARM体系结构(一)
ARM体系结构第一篇,主要是一些概念性的东西,需要仔细理解。可编程器的编程特点和原理 在固定频率的时钟控制下有节奏的运行可以通过总线获取外部存储中的二进制指令,从而解码执行这些二进制指令是CPU设计的时候决定的,由CPU的设计者定义,这就是CPU汇编指令集CPU的指令集 指令集就是ARM汇编指令集汇编语言相对C等高级语言比较复杂,且移植性差,不适合较大型的项目,但是汇编语言效率高原创 2016-06-25 09:17:04 · 5949 阅读 · 0 评论 -
ARM裸机入门简介
学习ARM裸机,是一件复杂事情,入门的概念性和基础性知识必须要了解到,以便于后面的知识的理解。ARM概念ARM首先是一个公司,这家公司设计CPU并向各个CPU制造商授权许可,所以ARM公司是一家CPU设计公司。同时,ARM也是ARM公司主导设计的CPU系列的简称。ARM版本区分ARM版本号可以分为三类:内核版本号,例如ARMv5,ARMv7,ARMv7a,ARMv原创 2016-06-20 23:30:52 · 8094 阅读 · 0 评论 -
Shell
什么是ShellShell是壳的意思,计算机中Shell常用于表示一种命令行的用户操作接口,Shell常用来表示封装,由于计算机很复杂,所以常把功能的实现和调用分开,Shell里边是功能实现,外边是功能调用,所以Shell可以看做是复杂功能实现的封装并向外部提供的比较容易的而接口程序或者操作系统的接口程序或者操作系统在运行起来之后,都会为用户提供操作界面,该界面就是一种Shell,用户原创 2016-11-13 22:47:47 · 729 阅读 · 0 评论