
ARM裸机
文章平均质量分 88
小帅比simon
热爱学习,想参与到改变世界的组织中!!
展开
-
四十二.移植bootm命令
0.一开始tftp能下载东西,但是很慢,做的调整有(1)将下载地址改写成局部变量,并且每次都利用当前块编号进行重定位(2)加上了原版u-boot里dm9000发送函数里发送前后都要清除发送标志(3)取消了老师说的要对包进行判断,实际上不判断效果还要好一点,那一部分,要求只要在空读前后有20微妙的时间间隔就好了,经我实际测试,我的开发板确实只用空读一次就满足该条件。(4)取消了中断处原创 2014-12-26 13:58:53 · 911 阅读 · 0 评论 -
二十二.bootloader的架构设计
1.总括2.3.4.5.第二阶段6.原创 2014-12-04 00:45:01 · 672 阅读 · 0 评论 -
十九.初识Bootloader
1.航天飞机有助推器,化学反应有催化剂,跑步有助跑,先是助推器起作用,飞机再自行工作2.把Linux内核带到他该到达的轨道,接下来让内核自主表演。简而言之就是启动内核3.设计方法-----模仿4.行业公认老大------U-boot(1)支持多种嵌入式处理器arm。PowerPC。mips,x86(2)支持多种嵌入式操作系统(Linux,Vxwo原创 2014-12-04 00:35:04 · 533 阅读 · 0 评论 -
十七.伪指令
1.机器码由汇编程序经过汇编器生成,有一定的格式,不同的指令有不同的格式,以数据传送类指令后面的低12位表示的数据范围有限,所以要用伪指令来处理这种困局。2.定义类伪指令:主要在编译的时候起作用看起来像指令的作用一样,但是只是像而已。它本身不产生机器码,而是在编译的时候起作用,告诉编译器如何编译,另一种作用就是转换为其他的实际的指令。GNU风格一般会在前面加原创 2014-12-04 00:32:07 · 757 阅读 · 0 评论 -
十六.汇编指令分类详解
0.GNU汇编小写为主1.算术逻辑指令(1)(2)(3)(4)(5)(6)ARM标准汇编的%代表二进制,但是GNU汇编必须用0b表示二进制2.比较类指令(1)(2)3.跳转指令/分支指令(1)(2)(3)原创 2014-12-04 00:31:00 · 1326 阅读 · 0 评论 -
二十五.关闭看门狗
1.嵌入式系统可能运行在无人看守的环境,有可能会意外死机,但是鉴于无人看守,所以需要一种自动重启的硬件机制---看门狗2.看门狗原理图3.原理:(1)PCLK经过预分频器以及选择器以后会产生看门狗时钟,然后通过计数逻辑模块,开始计数。(2)WTDAT是预先存放的计数初值,WTCNT是减量计数模块,当WTCNT从WTDAT的值减到0的时候,如果还没有更新W原创 2014-12-08 12:26:04 · 1512 阅读 · 0 评论 -
三十九.触摸屏
1.触摸屏优势:作为输入设备,简单方便,反应速度快,节省空间。2.分类:(1)电阻屏(2)电容屏3.电阻屏原理(1)结构:(2)工作流程:a.手指触摸屏幕,使得两个相互绝缘的导电层接触b.顶层触摸点电压会传递到底层,底层电压发生变化c.CPU对底层电压AD转换d.得到转换后的值与顶层电压的最大值相比,乘以屏幕总的长度,即可得到原创 2014-12-26 13:08:11 · 693 阅读 · 0 评论 -
三十七.DMA---直接存储访问
1.为何使用DMA:为了提高CPU的工作效率,避免多余的等待时间2.关于DMA控制器:(1)通道数:2440有4个通道,6410有4个DMA控制器(初始化的时候要选择),32个通道。210有两种DMA一种是内存与内存之间,另外则是普通的内存与外设之间。(2)请求源:(3)基本时序nXDREQ请求生效并经过2CLK周期同步后,nXDAC原创 2014-12-26 12:40:56 · 989 阅读 · 0 评论 -
三十五.Nandflash的操作
1.nandflash就是嵌入式系统的硬盘2.分类(1)MLC:存储单元格存储两位,慢,偏移,寿命短,容量大(2)SLC:存储一位。快,寿命长,容量小,昂贵3访问;(1)独立编址,有专用的控制器,控制器里有相应的寄存器,先送地址,然后命令,最后数据(2)地址组成:行地址(页编号),列地址(在页中的偏移),一个nand可以有很多块,每一块可以很多页,每原创 2014-12-26 12:05:14 · 1189 阅读 · 1 评论 -
十四.寄存器和寻址
1.寄存器分类:2.一共37个寄存器,31个通用寄存器,6个状态寄存器其中usr和sys的寄存器很类似3.通用寄存器:(1)不分组寄存器0--7(2)分组寄存器:8--14(3)PC指针:r154状态寄存器:只有在异常模式下,才会既有cpsr又有spsr,usr和sys模式下只有cpsr,为的是保护现场(1)N原创 2014-12-04 00:18:30 · 1252 阅读 · 0 评论 -
十.链接器脚本
1.裸机。内核,驱动,u-boot都会用到,地位重要。控制可执行程序的生成过程2.段:(1)一个可执行程序包含:代码段,数据段(已初始化),BSS段(未初始化)(2)脚本中必然包含与上述段相关的信息(3)固定格式: SECTIONS{ .text : { *(.原创 2014-12-02 20:49:38 · 591 阅读 · 0 评论 -
三.windows和Linux文件共享
1.前提一:能ping通前提二:关闭防火墙,关闭selinux。2.使用WinSCP:(1)使用管理员身份运行该软件(2)设置协议,默认使用第一个(3)设置Linux主机IP地址,端口保持不变(4)输入用户名和密码(5)login之后就可以直接在左右两边的的视窗里面拖拽文件进行文件拷贝3.Samba服务器(1)安装samba服务器先用#l原创 2014-12-01 17:41:52 · 508 阅读 · 0 评论 -
四十一.TFT客户端移植
一.tftp作用:在嵌入式开发中进行数据传输二.交互过程:1.客户端发送请求包(请求报文)2.根据选项参数,服务器决定是否发送应答确认包,进而客户端发送确认接收包,这步是可选的。3.服务器发送数据包1,。服务器会将要传输的数据拆分成许多小块,每512字节一个块。(数据报文)4.客户端回应数据包1(应答报文)5.服务器如果没有收到数据包1回应包,就会重复发送数原创 2014-12-26 13:43:39 · 1102 阅读 · 0 评论 -
四十.DM9000网卡搭建
一.网络模型1.OSI(开放式系统互联模型)从上往下依次是:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。2.Linux四层模型:从上往下依次是应用层,传输层,IP层,网络接口层。基于TCP/IP协议栈的模型。二.DM9000物理结构1.原理图工作实质就是MAC通过MII控制PHY的过程。原创 2014-12-26 13:33:28 · 2782 阅读 · 0 评论 -
三十八.进入自己的控制台LCD
1.ARM系统中LCD体系架构其中LCD驱动芯片和LCD显示器是连接在LCD模块上的,而LCD控制器则是在ARM处理器上的。2.液晶工作原理:液晶分子为长棒子状,通过分子的电流不一样, 他们会发生不同程度的偏转,从而对背光灯的光线产生不同程度的反射和折射,进而使得显示的像素呈现出不同的色彩。每个分子对应一个像素,很多像素构成一幅图像。3.液晶屏分类:原创 2014-12-26 12:56:29 · 1303 阅读 · 0 评论 -
三十六.串口控制台
1.串口角色:(1)数据传输通道(2)控制台2.通讯参数(1)波特率:衡量传输速率的快慢,每秒钟传输数据的位数(bit)(2)数据位:有效数据(3)起始位:线路空闲的时候是高电平,当检测到低电平认为有数据传输开始,所以是低电平。(4)奇偶校检位:检测数据传输是否正确(5)停止位:表明一帧数据传输结束以上这些参数发送方和接收方要一致3.原创 2014-12-26 12:26:47 · 1198 阅读 · 0 评论 -
三十四.通过按键玩中断
1.中断 :向CPU发出请求停止当前任务处理发出请求的外设的事件。另外一种CPU和外设交互的方式是轮询,效率太低了。2.中断生命周期: (1)信号产生(中断源) (2)信号过滤(中断控制器) (3)信号处理(CPU)3.不同的CPU可以处理的中断源数目不一样4关于中断过滤,分为有无子中断,见下图 5原创 2014-12-26 11:57:35 · 861 阅读 · 0 评论 -
三十三.MMU
1.MMU---存储管理单元2.不同的进程访问相同的地址,可能得到不同的值,因为使用的是MMU进行地址转换。3.复杂程序中一般使用的是虚拟地址,裸机中才会使用绝对地址。虚拟地址和绝对地址是通过MMU进行转换的,当MMU不工作的时候,程序使用的就是绝对地址。4.除了地址转换的作用,MMU还可以控制内存单元的访问权限。5.地址转换的总体流程:原创 2014-12-26 11:45:56 · 832 阅读 · 0 评论 -
十一.Eclipse集成开发环境
1.Eclipse能够在线调试2.编译程序的功能能够集成到Eclipse3.需要的软件:Eclipse,GDB server 以及Jlink驱动需要的硬件J-tag/jlink,串口4.准备工作:(1)通过从NOR Flash/SD卡启动,格式化NAND Flash(2)硬件连接,jlink,串口,电源,nandflash启动5.安装GDB server原创 2014-12-02 20:59:03 · 643 阅读 · 0 评论 -
二.远程登录
1.登陆前提:windows的Linux相互ping通2.关闭linux防火墙:#/etc/init.d/iptables stop3.使用Putty软件登陆。ssh协议,端口默认,然后选择打开,选择是即可。当然有些Linux发行版需要安装SSH服务包,比如Ubuntu的就需要sudo apt-get install openssh-server4.使用VNC原创 2014-12-01 17:24:54 · 620 阅读 · 0 评论 -
一.关于Vmware的网络连接
一.关于Vmware的网络连接0.当运行虚拟机的时候提示与Hyper-v冲突,则在windows的程序卸载的界面进入添加或关闭程序子选项,把相应的勾去掉。当提示主机正在使用虚拟机系统而无法进入虚拟机的时候,找到虚拟机文件所在的目录,将其.lck文件夹重命名即可。或者先重命名,然后再次启动虚拟机,然后关闭虚拟机,再次改回原来的名字,再一次启动虚拟机。1.Bridge模式(桥接原创 2014-12-01 16:36:49 · 830 阅读 · 0 评论 -
四.交叉开发相关
1.宿主机和目标机的概念2.交叉开发的下载工具:jlink jtag,usb,串口,网络3.tftp:(1)安装tftp服务器#rpm -ivh tftp-server-0.49-7.el6.i686.rpm(我用的是6.3的iso文件)(2)由于依赖关系导致需要安装xinetd包(3)配置tftp服务器#vim /etc/xi原创 2014-12-01 19:39:00 · 877 阅读 · 0 评论 -
十五.汇编概述
1.使用汇编的原因(1)启动代码:在bootloader和内核的初始化部分要用到汇编,因为此时还没有简历c语言的运行环境。(2)对效率有特殊要求的代码:汇编代码效率高。2.分类(1)arm标准汇编:适用于ARM公司的汇编器,适合在windows环境下和ADS一起使用。(2)GNU汇编:适用于GNU的交叉编译器,适用于Linux环境下。现在大多使用GNU汇编。原创 2014-12-04 00:20:40 · 522 阅读 · 0 评论 -
二十四.SVC模式设置
1.uboot和内核都是工作在SVC模式2.SVC模式能执行更多命令和访问更多寄存器3.清除指令:bic置位指令:orr4.状态字寄存器访问指令:mrs,msr@上电复位以后就执行这里reset: bl set_svc set_svc: mrs r0, cpsr bic r0,r0,#0x1F orr r0,r0,#0xD3原创 2014-12-08 12:18:39 · 864 阅读 · 0 评论 -
二十六.屏蔽中断
1.6410和210采用向量中断,由硬件执行。有两组中断源,相应的控制寄存器也有多个2.6410和210使能和屏蔽是分开的寄存器3.屏蔽控制寄存器的读写操作从而屏蔽中断,都是写入全14.6410的代码:@屏蔽中断,要操作两个寄存器,目的是将使能中断寄存器的相关位清除#define VIC0INTENCLEAR 0x71200014 #define V原创 2014-12-08 12:29:43 · 747 阅读 · 0 评论 -
二十七.关闭MMU
1.计算机存储体系越往上,越快越贵容量越小越往下容量越大越慢2.cache有无对比没有cache的时候,cpu直接和主存储器进行数据传输,很慢。有了cache以后,现在cache查找有无cpu需要的数据,有的话直接使用,没有再到主存储器去寻找,找到以后,把数据存到cache里面,以便下次再用到该数据会快很多,cache是比主存储器快很多但是容量小,分为指原创 2014-12-08 12:37:27 · 1036 阅读 · 0 评论 -
二十八.点亮LED
1.led通常作为一种调试手段2.GPIO:通用输入输出口常有三个寄存器控制3.不同平台的GPIO控制寄存器地址不同,工作模式不同,相应的控制寄存器的布局也不同,有的甚至一组GPIO要两个寄存器控制。4.对于6410还要注意在uboot中对外设进行地址初始化(1)将基地址存入r0,(2)设置大小,即偏移量,将基地址加上偏移量就得到映射地址(o原创 2014-12-08 12:39:24 · 640 阅读 · 0 评论 -
二十九.时钟初始化
1.概念解析:(1)时钟脉冲信号:由特定的电压幅度以及特定的时间间隔产生的脉冲信号(2)时钟脉冲频率:单位时间内产生的脉冲个数(3)信号产生:A.晶体振荡器:石英晶体经过打磨,加电极,通电,会产生稳定的时钟脉冲。但是如果需要高频率的信号,虽然结构简单,噪声低,但是成本倍增,交货周期长,而且难以获得非标准频率。B.PLL电路:也需要外部晶振,可改变原创 2014-12-08 12:43:40 · 894 阅读 · 0 评论 -
三十.内存初始化
1.内存的分类:(1)SRAM静态RAM,访问速度更快,但是成本高。常用在存储容量不大,速度要求高的场合。比如CPU的垫脚石采用的是SRAM。 (2)DRAM动态:由很多电容组成,需要定期充电保持信息,即刷新,故访问速度慢。1.1SDRAM:同步动态随机存储器(synchronous dynamic random access memory)同步:他的工作(命令传送和数原创 2014-12-08 12:47:27 · 1204 阅读 · 0 评论 -
三十一.代码搬移
1.垫脚石空间不够存放完整的uboot,所以要利用前面能够存放在垫脚石里的代码将剩余uboot复制到内存2.相对跳转和绝对跳转3.起始地址:(在本课由于未初始化NAND,所以起始地址在垫脚石)垫脚石的起始地址。终点:链接器脚本里指定的起始链接地址4.搬移方式,地址每次自动增加4个字节,利用一个中转寄存器。5.代码:@将bin文件从_start原创 2014-12-08 12:49:21 · 608 阅读 · 0 评论 -
十八.协处理器指令
1.协处理器:用于执行特定的任务,减轻处理器核的负担。一共可以支持16个协处理器,cp15最重要。2.CP15:系统控制协处理器,提供了很多寄存器,有利于控制cache,MMU,时钟系统等。访问他主要是访问她的寄存器,从而达到对系统的控制3.cp15里的有的寄存器会标明处理器的型号以及ID4.mcr:从通用寄存器到协处理器5.mrc:从协处理原创 2014-12-04 00:33:32 · 580 阅读 · 0 评论 -
二十.ARM处理器的启动流程
1.启动方式(1)norflash:2MB,从norflash的0地址处开始运行第一条代码,所以代码一定要放在norflash的最前端(2)nandflash:128MB,但是nandflash没有参与同一编址,不能直接访问,需要访问特殊寄存器才可以访问,所以要从片内的4KB的boot SRAM开始执行,即0地址是排放boot sram(stepping stone),上电之后处理器自动将原创 2014-12-04 00:37:11 · 701 阅读 · 0 评论 -
二十一.UBOOT工作流程
1.程序入口(1)从顶层目录的Makefile入手(2)在Makefile搜索smdk2440得到其中阴影部分代表u-boot/board/samsung目录下的子目录名称(3)进入上述子目录可以看到其中阴影部分是链接器脚本文件(4)打开它可以看到阴影部分指明了代码段最开始部分对应的的文件是在u-boot/cpu/s3c24xx/原创 2014-12-04 00:42:38 · 702 阅读 · 0 评论 -
五.为RedHat配置yum功能
1.rpm缺点:(1)匹配麻烦(2)依赖关系脆弱2.yum软件包仓库管理(1)仓库源.repo文件存放在/etc/yum.repos.d目录下(2)可以有多个不同的.repo文件,表示不同的仓库源(3)添加免费仓库源http://pkgs.repoforge.org/rpmforge-release/可以下载到一些工具3.仓库源相关命令(原创 2014-12-01 20:53:08 · 527 阅读 · 0 评论 -
六.sudo和root密码
1.sudo(1)权力分配和下放(2)修改配置文件来设定各个用户的权力/etc/sudoers按照约定格式来修改当前用户名 主机名=(运行用户名) 可运行的命令(在切换到当前用户名下工作的时候,执行命令前加上sudo就可以执行未修改配置文件前不能执行的命令)例2使得用smb使用系统的时候,不用密码就可以执行sudo xxxx命令2.su原创 2014-12-01 22:23:33 · 1010 阅读 · 0 评论 -
七.裸机体验
1.传统的ADS已经过时,且与现代操作系统不太兼容,初学者不能了解到深入的本质2.裸机开发流程:(1)编写裸机程序(2)调试(3)编译,链接,格式转换生成二进制镜像文件(4)烧写到开发板3.安装交叉工具链arm-linux-gcc(1)在/home/username下面创建课程目录(2)启动samba服务(3)复制交叉工具链到linux(4)原创 2014-12-02 19:33:05 · 614 阅读 · 0 评论 -
八.交叉工具链
1.何为交叉工具链?交叉工具的集合2.交叉工具:可以用file命令从本质上查看用交叉工具和普通工具编译出来的文件的属性是不同的,他们的运行平台不同3.交叉开发模型:宿主机 目标机的硬件平台不一样,在X86平台上产生用于其他平台的程序的过程就是交叉开发4.交叉编译器:#arm-linux -gcc 【选项】 文件名 【选项】 【目标名原创 2014-12-02 19:35:34 · 615 阅读 · 0 评论 -
九.Makefile文件
1.make命令依赖于Makefile文件2.Makefile文件描述了整个程序的编译和链接规则,指出哪些文件需要编译,如何编译,产生何种文件。简化生产,一劳永逸。3.Makefile的组成:规则 + 变量由规则组成:目标:依赖 命令(注意,前面一定是tab键)一般汇编文件都需要先变成.o文件4.伪目标,只有目标没有依赖,通常用关键字原创 2014-12-02 19:40:24 · 503 阅读 · 0 评论 -
十二.家族大检阅
1.名词分类:(1)芯片名称:2440,210,6410,(2)ARM核:a8,arm9,arm11(3)指令架构:armv4,armv6,armv72.每一个芯片都包含了一个核,每一种类型的核都采用了一种具体的指令架构。而ARM公司就是出售arm核。芯片中最重要的是arm核,直接决定性能。3.核历史演变cortex有三个系列:(1)M系列,原创 2014-12-04 00:14:33 · 521 阅读 · 0 评论 -
十三.工作模式
1.请出大帮手:ARM指令手册2.有七种工作模式,为的是形成不同的使用级别,以防造成对系统的破坏。不同模式可以访问的寄存器不同,可以运行的指令不同。3.(1)usr:普通应用程序运行的模式(应用程序)(2)FIQ:快速中断模式,以处理快速情况,高速数据传输(3)IRQ:外部中断模式,普通中断处理(4)svc:保护模式(管理模式),操作系统使用的特权模式(内核原创 2014-12-04 00:16:19 · 632 阅读 · 0 评论