牛商网建站,网站建设优化公司呼和浩特,微信外部链接网站,企业信用信息查询公示系统河南一 嵌入式系统定义#xff1a; 应用于特定环境的硬件体系。 二 两样非常重要的能力#xff1a; 1. 掌握各种新概念的能力 2. 调试的能力( 包括软件, 硬件 ) 三 需要的基础知识#xff1a; 1. 操作系统理论基础 2. 数据结构 3. C,C编程语言 4. 汇编语言 5. Linux基…一 嵌入式系统定义 应用于特定环境的硬件体系。 二 两样非常重要的能力 1. 掌握各种新概念的能力 2. 调试的能力( 包括软件, 硬件 ) 三 需要的基础知识 1. 操作系统理论基础 2. 数据结构 3. C,C编程语言 4. 汇编语言 5. Linux基础能力 6. 单片机基础 四 结构框架 1. bootloader( 作用a. 初始化硬件 b. 引导操作系统 ) 2. kernel 3. 文件系统 它们都置于flash中。 五 flash六大分区 1. boot --- 引导区 2. boot param --- 引导参数区 3. my application --- 用户程序区 4. kernel --- 内核区 5. fs_yaffs --- 文件系统区( 挂载文件时用 ) 6. wince --- 存放wince操作系统 一 ARM7 vs ARM9 流水线 3级 5级 MMU 无 有 MMU和流水线级数非常的重要它们是衡量一个芯片性能的重要参数。 二 ARM开发板上的接口 1. 单片机类型接口 串口LED按键红外温度传感器蜂鸣器I2CSPI ... ... 2. 较高端接口 LCDCAMARAIDEUSBSD卡 ... ... 三 JTAG板 1. 作用 a. 对内部芯片进行读写控制。 b. 对外设进行间接控制。 c. 往板上的硬件烧录数据或程序。 2. 接口 a. JTAG接口 烧写接口( 请小心烧写bootloader因为每次烧写都将擦除整个flash ) b. WIGGLE接口调试接口( 需要搭配H-JTAG代理软件并使用软件AXD进行调试 ) 四 开发板使用注意事项 1. 使用前先去电( 用手摸一下各金手指部分即可 )。 2. 切记除了网口usb口sd口之外的接口不可带电插拔。 一 方法一( 串口通讯 ) 1. 在PC开发端的linux环境中写好源代码。 2. 使用交叉编译器arm-linux-gcc编译之。 3. 用超级终端或者DNW建立ARM开发板与PC开发端的连接给ARM开发板上电进入linux系统。 4. 再用上面两种通讯软件之一进行USB文件传输即可。 比起下面即将学习的方法这种方法显得很笨因为不利于调试。 二 方法二( 网络文件系统NFS步骤 ) 1. 在PC开发端的linux环境中写好源代码。 2. 在PC开发端的linux环境中使用交叉编译器arm-linux-gcc编译之。 3. 用超级终端或者DNW建立ARM开发板与PC开发端的连接并启动ARM开发板进入linux系统。 4. 在ARM开发板的linux环境中执行命令 ifconfig eth0 192.168.0.11 建立IP。 5. 在PC开发端的linux环境中执行命令 ifconfig eth0 192.168.0.22 up 建立IP。 6. 在PC开发端的linux环境中执行命令 service nfs restart 启动NFS服务器。 7. 在ARM开发板的linux环境中执行命令 ping 192.168.0.22 建立和PC开发端的连接。 8. 在ARM开发板的linux环境中执行命令 mount -n nolock,rsize1024,wsize1024,timeo15 192.168.0.22:/ /mnt 即可将PC开发端的linux环境中的根目录挂载到ARM开发板的linux环境中的/mnt目录里。 9. 打开ARM开发板下的/mnt目录下就能看到并和PC共享那个根目录。 一 作用 用之来编译生成bootloader或者裸机程序。 二 说明 ADS其实就是Arm Develope Suite。主要由armcc, Code Warrior以及AXD组成。 armcc是编译器Code Warrior是编辑控制器AXD是调试器。 三 使用详细步骤 已在实验中详细学习可以参考 四 一个实例ADS程序( 裸机程序 )分析 该程序实现了让开发板的LED轮流闪烁故称为跑马灯程序。 1. 汇编部分 2. C语言部分 五 一般的ADS程序( 裸机程序 )设计步骤 1. 由开发板原理图确定设备所在引脚。 2. 找到设备对应的寄存器编号。 3. 对控制器里面的寄存器进行写入从而达到控制设备的目的。 一 两种重要的硬件 它们的相关参数是衡量一个芯片性能的重要参考对象。维基百科里有更详细的介绍。 1. MMU 定义属于硬件范畴能够将操作地址的虚址转换为实址。 2. cathe 定义属于硬件范畴为了弥补CPU与内存的速度差而存在对程序员透明。 二 ARM的工作模式 1. 用户模式( USR ) --- 运行应用程序的模式 2. 管理模式( SVC ) --- 操作系统的保护模式 3. 中断模式( IRQ ) --- 用于普通中断处理的模式 4. 快速中断模式( FIQ ) --- 用于支持数据传输或通道处理的模式 5. 数据访问中断模式( ABT ) --- 指令预取或读取数据错误时的模式 6. 系统模式( SYS ) --- 特权模式 7. 未定义指令终止模式( UND ) --- 执行了未定义的指令时进入 四 ARM的重要寄存器 1. R13 --- 栈指针寄存器 2. R14 --- 子程序调用时保存PC指针的寄存器 3. R15 --- PC指针寄存器( PC是记录下一条指令地址的寄存器 ) 4. CPSR --- 当前的程序状态字寄存器 5. SPSR --- 保存程序状态字的寄存器 嵌入式Linux在这里是指跑在嵌入式计算机上的linux系统 ... ... 一 特点 1. 自由 ( 代码开源可自行修改 ) 2. 稳定 ( 死机率非常低 ) 二 版本识别技巧 linux内核的版本号类似 主版本号.次版本号.释出版本号 。比如对于内核2.6.39来说2是主版本号6是次版本号39是释出版本号。 如果主版本号或次版本号中有一个为奇数那么这个内核还在测试中很不稳定反之如果主版本号和次版本号都是偶数那么这个 版本的内核就是稳定版本。释出版本号与内核是否稳定无关。 三 linux内核移植 1. 定义 是指对linux内核源码进行剪裁使之能最大化的服务于特定硬件体系。 2. 剪裁过程 a. 修改内核源码 b. 将内核源码重新编译 c. 把生成的内核映像文件拷贝到相应分区 3. 说明 内核源码是基于C语言开发完成的。 四 linux内核重要目录 1. /arch --- 所有和体系结构相关的代码 2. /drivers --- 各种驱动 3. /fs --- 文件系统 4. /include --- 编译核心时用的头文件 5. /init --- 初始化系统所用的代码 6. /kernel --- 进程调度代码 五 大致学习步骤 初步体验linux - 熟悉linux常用命令以及工具 - linux应用程序开发 - linux驱动程序开发 - 熟悉kernel之后进入更加深层次的开发。 一 命令行模式 定义 使用全字符的界面进行开发。 特点 占用的资源少稳定。( 图形界面会占用许多资源在很多种情况下带来不便 ) 说明 命令其实就是一个程序参数就是传递给它的变量。 二 常用命令 ls, cd, mkdir vi, gcc ... ... 里所编译的核心是已经移植好了的核心而不是直接从ww.kernel.org上直接下载得到的核心。 至于如何移植不属于这个系列视频的学习范畴 ... ... 一 编译步骤 1. 获取linux内核源码( 已经移植好了的 )。 2. 解压。 3. 打开解压目录修改makefile文件 找到 CROSS_COMPILE ? ...... 这行将......部分替换为 交叉编译器的目录下的bin目 录的路径 4. 执行命令 make menuconfig 进一步对参数进行配置。( 比如可以选择需要安装的驱动模块 等 ) 5. 执行命令 make zImage 。( I确保大写 ) 6. 编译完成之后将在源码解压目录下的/arch目录下的/boot目录里产生一个新的zImage文件将 它拷贝到开发板的kernel分区即可完成linux操作系统的下载。 一 方法一( 串口通讯 ) 1. 在PC开发端的linux环境中写好源代码。 2. 使用交叉编译器arm-linux-gcc编译之。 3. 用超级终端或者DNW建立ARM开发板与PC开发端的连接给ARM开发板上电进入linux系统。 4. 再用上面两种通讯软件之一进行USB文件传输即可。 比起下面即将学习的方法这种方法显得很笨因为不利于调试。 二 方法二( 网络文件系统NFS步骤 ) 1. 在PC开发端的linux环境中写好源代码。 2. 在PC开发端的linux环境中使用交叉编译器arm-linux-gcc编译之。 3. 用超级终端或者DNW建立ARM开发板与PC开发端的连接并启动ARM开发板进入linux系统。 4. 在ARM开发板的linux环境中执行命令 ifconfig eth0 192.168.0.11 建立IP。 5. 在PC开发端的linux环境中执行命令 ifconfig eth0 192.168.0.22 up 建立IP。 6. 在PC开发端的linux环境中执行命令 service nfs restart 启动NFS服务器。 7. 在ARM开发板的linux环境中执行命令 ping 192.168.0.22 建立和PC开发端的连接。 8. 在ARM开发板的linux环境中执行命令 mount -n nolock,rsize1024,wsize1024,timeo15 192.168.0.22:/ /mnt 即可将PC开发端的linux环境中的根目录挂载到ARM开发板的linux环境中的/mnt目录里。 9. 打开ARM开发板下的/mnt目录下就能看到并和PC共享那个根目录。转载于:https://www.cnblogs.com/lifan3a/articles/4161488.html