如何使用开发板(ARM+Linux)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用程序的执行是依赖于操 作系统的 应用程序需要调用linux操作 系统的库函数来实现 驱动程序是联接操作系统和 硬件之间的桥梁 应用程序不能直接操作硬件 ADS程序是无操作系统支持 的,可以直接操作硬件 Linux的体系架构使得系统 更稳定可靠
初学嵌入式linux应该遵循的步骤
在PC上安装Linux,学会基本操作,建立感性 认识。 掌握Linux的基本‘命令’;能在PC上编写简单 的C程序,并编译执行;熟悉Makefile的使用 嵌入式Linux应用程序的学习 嵌入式Linux驱动程序的学习 逐步熟悉内核,进行深度开发
2beanet嵌入式
需要具备的软硬件资源
Windows XP和Linux系统双系统
可以安装在同一台PC上,双系统启动
在windows上面运行Linux虚拟机
不推荐使用
两台机器,分别装Windows和linux服务器
可用Xmanager Entprise 等软件在windows上远程 控制linux服务器
2beanet嵌入式
学习建议
最好的学习方法:做一个难度适中的产品开发 项目 项目开发可以在开发板上进行 学习需要步骤,并遵循一定的规律 2beanet嵌入式提供完备的学习套件
配套视频教程 实用开发板 技术服务团队
2beanet嵌入式
实用的开发套件
如何使用开发板(综述)
2beanet嵌入式资源免费下载
电力系统大型设备研发
单片机/DSP
北京中星微电子有限公司
ARM + Nucleus (消费电子)
华为技术有限公司
高端路由器 PowerPC+VxWorks
某研究所 加密机
ARM + Linux PowerPC+VxWorks
如何交叉编译应用程序
使用交叉编译器arm-linux-gcc 生成的文件是不能运行在PC机上面的
2beanet嵌入式
如何在开发板上运行和调试应用程序
可以把程序通过串口下载到开发板上运行 通过网络文件系统NFS实现在开发板上的运 行和调试 网络文件系统NFS是一台Linux系统通过网络 挂接另外一台Linux机器文件系统的方法
2beanet嵌入式
什么是虚拟内存?
现代的操作系统大多数支持多任务运行 在WINDOWS上面可以同时跑QQ、浏览网 页,MP3播放器(三个任务) 每个任务都认为自己‘独占’处理器 每个任务都认为自己拥有4G内存
32位系统的寻址空间为:2^32 == 4G 而系统实际内存远小于4G,所以这个‘4G’是假的, 称为‘虚拟内存’
用gcc在PC上练习C语言编程,不断提高程序 调试能力
如何使用开发板
(三)初次使用
2beanet嵌入式
需要具备的软硬件资源
一台PC机
串口
必不可少的 可用USB转串口的模块) 实现起来比较简单,嵌入式开发常用
并口
转接模块并不好用,最好是本身带并口的PC 可以用J-LINK仿真器(USB接口)来代替,速度更快些
2beanet嵌入式
高速缓冲存储器(cache)
位于CPU和主存之间的高层 存储子系统 弥补高速的处理器与相对比 较慢速的内存之间的矛盾 处理器仍在按摩尔定律快速 发展,处位容量的价格 很昂贵 该架构是成本和性能的折中 对程序员透明
ARM工作模式
1 用户模式(USR),运行应用的普通模式 2 管理模式(SVC),操作系统的保护模式(超级用户模式) 3 中断模式(IRQ),用于普通中断处理 4 快速中断模式(FIQ)支持数据传输或通道处理 5 数据访问中断模式(ABT)指令预取或读数据错误时 6 系统模式(SYS), 操作系统使用的有特权的用户模式 7 未定义指令终止模式,即无定义模式(UND),执行了未定义指令 时进入
2beanet嵌入式
Linux中的‘命令’
如何与操作系统进行人机交互?
图形界面
如WINDOW/LINUX等桌面系统 实现起来比较复杂,占用资源多 使用方便,容易掌握
命令
早期的操作系统一般是通过‘命令’来交互 实现简单,占用系统资源少 使用不方便,不容易掌握
2beanet嵌入式
Linux命令的使用
2beanet嵌入式
嵌入式技术掌握的难度
正确说法:嵌入式技术的全面掌握比较困难, 但可以各个击破! 手机研发最少可分为三个组
硬件设计 包括器件选型、PCB设计等 底层驱动 包括系统移植、各种驱动设计 上层软件 各种应用软件的开发,如播放器、浏览 器等
三个大的方面仍然可以细分,掌握其中一块即 有机会进入该行业,逐渐深入,将面临更多的 机会
自由开放,免费 稳定可靠,功能强大
版本更新很快
2beanet嵌入式
Linux的版本
三部分组成:major.minor.patchlevel 开发板目前版本:2.6.28 发行版(release)与测试版(2.5.10 ) Linux源代码(/ ) “移植”操作系统
视频教程包括两部分
单片机基础
ARM+Linux/WinCE
2beanet嵌入式
进军嵌入式Linux
基于2beanet开发板 学习嵌入式linux及 linux下的程序开发
2beanet嵌入式
Linux介绍
是一套免费使用和自由传播的类unix操作系统 UNIX于上世纪70年代面世,稳定可靠,常应 用于服务器等场合 Linux诞生于1991年,两大特点:
不要带电插拔
主要指串口、LCD接口以及JTAG接口 USB、网口是可以带电插拔的
2beanet嵌入式
初步测试
把开发板连接好液晶,直接加电(5V电源) 片刻后,会自启动WinCE(出厂默认安装) 插上鼠标就可以操作了 在控制面板中打开‘笔针’,可校准触摸屏,并 能够正常使用
进一步测试
用串口线连接开发板(接串口0)和电脑 在PC上打开DNW 选择菜单Serial Port connect
linux的虚拟机
VMware + redhat 9.0 与实际Linux的界面是一致的 安装方法可参考网络
2beanet嵌入式
Linux命令的使用
dir 列出当前目录中的文件 cd 进入某个指定的目录 mkdir 建立一个空目录 vi 生成或编辑一个文件 gcc 本机编译一个C程序
2beanet嵌入式
操作系统的主要功能
多任务调度与通讯的支持,包括进程管理,是 操作系统的基本功能。 设备管理 驱动程序的管理。 文件系统 实现对文件的操作 网络协议栈 对各种网络协议提供底层支持 图形系统 实现人机交互,给予使用者良好的 的操作界面,linux内核源码没包含此部分。
2beanet嵌入式
Linux系统在运行时的整体架构
2beanet嵌入式
虚拟内存如何实现
操作系统提供了虚拟内存的实现支持 是现代操作系统非常重要的功能:内存管理 操作系统最终实现了从虚拟地址到物理地址 的转换 内存管理是通过MMU来辅助实现的
2beanet嵌入式
MMU的功能
完成了从虚拟地址到物理地址的转换 《计算机系统结构》郑纬民 清华大学出版社
中国软件行业协会嵌入式系统分 会理事 我们QQ群: 69757533,欢迎 交流!
2beanet嵌入式
嵌入式系统介绍( Embeded System)
随着系统越来越复杂,2000年以后‘嵌入式’这个词 开始流行 绝大多数的电子设备,可以认为包含有‘嵌入式系 统’在工作 嵌入式系统即嵌入到设备内部的计算机系统 定义:以应用为中心,以计算机技术为基础,并且软 硬件可裁剪,适用于应用系统对功能、可靠性、成 本、体积、功耗有严格要求的专用计算机系统
2beanet嵌入式
Linux开发一定要注意版本问题
Linux是开源的,任何人可以得到并修改 版本众多,不容易管理 举例说明
Qtopia 2.2.0 需要在redhat9上用2.95.3编译器 Linux2.6.28需要用3.4.1编译器版本
要注意几方面的版本问题
宿主机(PC机)的版本 被编译的对象的版本 编译器的版本
linux源码的目录结构
lib :放置核心的库代码 mm :即memory management,包 括所有独立于CPU体系结构的内存 管理代码,如内存的分配和释放。 net :网络协议的代码,如TCP/IP整 套协议的实现。 scripts :此目录包含用于配置核心 的脚本文件等。 Documentation :整个linux系统源 代码的相关文档,可从中了解相关 说明,对理解源码有很大帮助。
修改源代码 重新编译源代码,生成映像并运行到目标板
可参照用户光盘(linux\linux2.6.28\内核源 码包\2440-linux-2.6.28.tar.gz) Linux源代码是基于C语言的 2beanet嵌入式
linux源码的目录结构
arch: 该子目录包含 了所有和体系结构相 关的核心代码。它的 每个子目录都代表一 种支持的体系结构 drivers:放置系统所 有的设备驱动程序; 每种驱动又各占用一 个子目录,如I2C、 flash 、LCD等等
2beanet嵌入式
linux源码的目录结构
fs : 即file system,和文件系统相 关代码,支持各种常见格式,如 fat32、NTFS 、yaffs 、ext 、nfs include :包括编译核心需要的大部 分头文件,与平台无关的文件在 、 include/linux init :包含核心初始化代码 ipc :包含进程间通讯的源码 kernel :主要的核心代码,实现了 大多数linux系统的内核函数,如进 程调度等。
2beanet嵌入式
总结
命令的实质
2beanet嵌入式
实质就是一个应用程序 与操作系统结合在一起,才称为‘命令’
gcc是本机编译器
用gcc编译的程序hello是不能运行到开发板上的 用gcc编译出来的程序基于X86指令 如果想在开发板上运行,就需要使用交叉编译器, 如arm-linux-gcc 交叉编译器在用户光盘的linux目录下,有多个版本
2beanet嵌入式
版本问题
Linux宿主机(PC机)最好安装RedHat9或者 FC8,其他没有比较全面的测试 版本问题不是绝对的,可以自己研究可能性 对于WinCE开发来讲,版本问题比较少
2beanet嵌入式
使用开发板时需要注意两个问题
静电问题
开发板没有外壳,便于学习 芯片容易被静电打坏,使用前应先去除静电
2beanet嵌入式
嵌入式系统的发展
嵌入式的发展成快速增长趋势 举例:手机
快速的发展,需要大量的研发人才
2beanet嵌入式
嵌入式技术掌握的难度
两种说法
嵌入式技术的难度极高,没有几年时间的项目实践 很难能够胜任 其实很简单,可以速成
以上两种说法都不够科学,比较片面 作为一门技术,并不是不可逾越,难度在于坚 持! 速成也是不可行的,需要不断积累才能熟练掌 握。
两个问题
系统不能启动时?
按上节介绍的方式重新下载bootloader
如何自启动linux
2beanet嵌入式
两个问题
如何改变自启动方式?
需要配置参数 修改参数‘0’:1 用户应用程序 2 linux 3 wince
BootLoader如何生成的?
编译bootloader源码生成二进制代码 编译工具(编译器)即ADS ADS是个集成开发环境
2beanet嵌入式
寄存器
影子寄存器 R13 堆栈指针 R14 连接(link)寄存器,用于子程序调 用时保存PC指针 R15 PC 指针 CPSR (当前的程序状态字) SPSR (保存的程序状态字)
2beanet嵌入式
如何使用开发板
ADS使用详解
2beanet嵌入式
修改串口设置:
进一步测试
打开电源,将有数 据打印出来,并自 动启动WinCE 在上电以后,DNW 里面敲回车,将停 在bootloader,如右 图 点击‘3’会运行测试 程序
如何使用开发板
ARM体系结构(一)
2beanet嵌入式:
MMU的功能特点
Memory Management Unit 内存管理单元 ARM体系结构的重要组成 使得虚拟内存成为可能
初学嵌入式linux应该遵循的步骤
在PC上安装Linux,学会基本操作,建立感性 认识。 掌握Linux的基本‘命令’;能在PC上编写简单 的C程序,并编译执行;熟悉Makefile的使用 嵌入式Linux应用程序的学习 嵌入式Linux驱动程序的学习 逐步熟悉内核,进行深度开发
2beanet嵌入式
需要具备的软硬件资源
Windows XP和Linux系统双系统
可以安装在同一台PC上,双系统启动
在windows上面运行Linux虚拟机
不推荐使用
两台机器,分别装Windows和linux服务器
可用Xmanager Entprise 等软件在windows上远程 控制linux服务器
2beanet嵌入式
学习建议
最好的学习方法:做一个难度适中的产品开发 项目 项目开发可以在开发板上进行 学习需要步骤,并遵循一定的规律 2beanet嵌入式提供完备的学习套件
配套视频教程 实用开发板 技术服务团队
2beanet嵌入式
实用的开发套件
如何使用开发板(综述)
2beanet嵌入式资源免费下载
电力系统大型设备研发
单片机/DSP
北京中星微电子有限公司
ARM + Nucleus (消费电子)
华为技术有限公司
高端路由器 PowerPC+VxWorks
某研究所 加密机
ARM + Linux PowerPC+VxWorks
如何交叉编译应用程序
使用交叉编译器arm-linux-gcc 生成的文件是不能运行在PC机上面的
2beanet嵌入式
如何在开发板上运行和调试应用程序
可以把程序通过串口下载到开发板上运行 通过网络文件系统NFS实现在开发板上的运 行和调试 网络文件系统NFS是一台Linux系统通过网络 挂接另外一台Linux机器文件系统的方法
2beanet嵌入式
什么是虚拟内存?
现代的操作系统大多数支持多任务运行 在WINDOWS上面可以同时跑QQ、浏览网 页,MP3播放器(三个任务) 每个任务都认为自己‘独占’处理器 每个任务都认为自己拥有4G内存
32位系统的寻址空间为:2^32 == 4G 而系统实际内存远小于4G,所以这个‘4G’是假的, 称为‘虚拟内存’
用gcc在PC上练习C语言编程,不断提高程序 调试能力
如何使用开发板
(三)初次使用
2beanet嵌入式
需要具备的软硬件资源
一台PC机
串口
必不可少的 可用USB转串口的模块) 实现起来比较简单,嵌入式开发常用
并口
转接模块并不好用,最好是本身带并口的PC 可以用J-LINK仿真器(USB接口)来代替,速度更快些
2beanet嵌入式
高速缓冲存储器(cache)
位于CPU和主存之间的高层 存储子系统 弥补高速的处理器与相对比 较慢速的内存之间的矛盾 处理器仍在按摩尔定律快速 发展,处位容量的价格 很昂贵 该架构是成本和性能的折中 对程序员透明
ARM工作模式
1 用户模式(USR),运行应用的普通模式 2 管理模式(SVC),操作系统的保护模式(超级用户模式) 3 中断模式(IRQ),用于普通中断处理 4 快速中断模式(FIQ)支持数据传输或通道处理 5 数据访问中断模式(ABT)指令预取或读数据错误时 6 系统模式(SYS), 操作系统使用的有特权的用户模式 7 未定义指令终止模式,即无定义模式(UND),执行了未定义指令 时进入
2beanet嵌入式
Linux中的‘命令’
如何与操作系统进行人机交互?
图形界面
如WINDOW/LINUX等桌面系统 实现起来比较复杂,占用资源多 使用方便,容易掌握
命令
早期的操作系统一般是通过‘命令’来交互 实现简单,占用系统资源少 使用不方便,不容易掌握
2beanet嵌入式
Linux命令的使用
2beanet嵌入式
嵌入式技术掌握的难度
正确说法:嵌入式技术的全面掌握比较困难, 但可以各个击破! 手机研发最少可分为三个组
硬件设计 包括器件选型、PCB设计等 底层驱动 包括系统移植、各种驱动设计 上层软件 各种应用软件的开发,如播放器、浏览 器等
三个大的方面仍然可以细分,掌握其中一块即 有机会进入该行业,逐渐深入,将面临更多的 机会
自由开放,免费 稳定可靠,功能强大
版本更新很快
2beanet嵌入式
Linux的版本
三部分组成:major.minor.patchlevel 开发板目前版本:2.6.28 发行版(release)与测试版(2.5.10 ) Linux源代码(/ ) “移植”操作系统
视频教程包括两部分
单片机基础
ARM+Linux/WinCE
2beanet嵌入式
进军嵌入式Linux
基于2beanet开发板 学习嵌入式linux及 linux下的程序开发
2beanet嵌入式
Linux介绍
是一套免费使用和自由传播的类unix操作系统 UNIX于上世纪70年代面世,稳定可靠,常应 用于服务器等场合 Linux诞生于1991年,两大特点:
不要带电插拔
主要指串口、LCD接口以及JTAG接口 USB、网口是可以带电插拔的
2beanet嵌入式
初步测试
把开发板连接好液晶,直接加电(5V电源) 片刻后,会自启动WinCE(出厂默认安装) 插上鼠标就可以操作了 在控制面板中打开‘笔针’,可校准触摸屏,并 能够正常使用
进一步测试
用串口线连接开发板(接串口0)和电脑 在PC上打开DNW 选择菜单Serial Port connect
linux的虚拟机
VMware + redhat 9.0 与实际Linux的界面是一致的 安装方法可参考网络
2beanet嵌入式
Linux命令的使用
dir 列出当前目录中的文件 cd 进入某个指定的目录 mkdir 建立一个空目录 vi 生成或编辑一个文件 gcc 本机编译一个C程序
2beanet嵌入式
操作系统的主要功能
多任务调度与通讯的支持,包括进程管理,是 操作系统的基本功能。 设备管理 驱动程序的管理。 文件系统 实现对文件的操作 网络协议栈 对各种网络协议提供底层支持 图形系统 实现人机交互,给予使用者良好的 的操作界面,linux内核源码没包含此部分。
2beanet嵌入式
Linux系统在运行时的整体架构
2beanet嵌入式
虚拟内存如何实现
操作系统提供了虚拟内存的实现支持 是现代操作系统非常重要的功能:内存管理 操作系统最终实现了从虚拟地址到物理地址 的转换 内存管理是通过MMU来辅助实现的
2beanet嵌入式
MMU的功能
完成了从虚拟地址到物理地址的转换 《计算机系统结构》郑纬民 清华大学出版社
中国软件行业协会嵌入式系统分 会理事 我们QQ群: 69757533,欢迎 交流!
2beanet嵌入式
嵌入式系统介绍( Embeded System)
随着系统越来越复杂,2000年以后‘嵌入式’这个词 开始流行 绝大多数的电子设备,可以认为包含有‘嵌入式系 统’在工作 嵌入式系统即嵌入到设备内部的计算机系统 定义:以应用为中心,以计算机技术为基础,并且软 硬件可裁剪,适用于应用系统对功能、可靠性、成 本、体积、功耗有严格要求的专用计算机系统
2beanet嵌入式
Linux开发一定要注意版本问题
Linux是开源的,任何人可以得到并修改 版本众多,不容易管理 举例说明
Qtopia 2.2.0 需要在redhat9上用2.95.3编译器 Linux2.6.28需要用3.4.1编译器版本
要注意几方面的版本问题
宿主机(PC机)的版本 被编译的对象的版本 编译器的版本
linux源码的目录结构
lib :放置核心的库代码 mm :即memory management,包 括所有独立于CPU体系结构的内存 管理代码,如内存的分配和释放。 net :网络协议的代码,如TCP/IP整 套协议的实现。 scripts :此目录包含用于配置核心 的脚本文件等。 Documentation :整个linux系统源 代码的相关文档,可从中了解相关 说明,对理解源码有很大帮助。
修改源代码 重新编译源代码,生成映像并运行到目标板
可参照用户光盘(linux\linux2.6.28\内核源 码包\2440-linux-2.6.28.tar.gz) Linux源代码是基于C语言的 2beanet嵌入式
linux源码的目录结构
arch: 该子目录包含 了所有和体系结构相 关的核心代码。它的 每个子目录都代表一 种支持的体系结构 drivers:放置系统所 有的设备驱动程序; 每种驱动又各占用一 个子目录,如I2C、 flash 、LCD等等
2beanet嵌入式
linux源码的目录结构
fs : 即file system,和文件系统相 关代码,支持各种常见格式,如 fat32、NTFS 、yaffs 、ext 、nfs include :包括编译核心需要的大部 分头文件,与平台无关的文件在 、 include/linux init :包含核心初始化代码 ipc :包含进程间通讯的源码 kernel :主要的核心代码,实现了 大多数linux系统的内核函数,如进 程调度等。
2beanet嵌入式
总结
命令的实质
2beanet嵌入式
实质就是一个应用程序 与操作系统结合在一起,才称为‘命令’
gcc是本机编译器
用gcc编译的程序hello是不能运行到开发板上的 用gcc编译出来的程序基于X86指令 如果想在开发板上运行,就需要使用交叉编译器, 如arm-linux-gcc 交叉编译器在用户光盘的linux目录下,有多个版本
2beanet嵌入式
版本问题
Linux宿主机(PC机)最好安装RedHat9或者 FC8,其他没有比较全面的测试 版本问题不是绝对的,可以自己研究可能性 对于WinCE开发来讲,版本问题比较少
2beanet嵌入式
使用开发板时需要注意两个问题
静电问题
开发板没有外壳,便于学习 芯片容易被静电打坏,使用前应先去除静电
2beanet嵌入式
嵌入式系统的发展
嵌入式的发展成快速增长趋势 举例:手机
快速的发展,需要大量的研发人才
2beanet嵌入式
嵌入式技术掌握的难度
两种说法
嵌入式技术的难度极高,没有几年时间的项目实践 很难能够胜任 其实很简单,可以速成
以上两种说法都不够科学,比较片面 作为一门技术,并不是不可逾越,难度在于坚 持! 速成也是不可行的,需要不断积累才能熟练掌 握。
两个问题
系统不能启动时?
按上节介绍的方式重新下载bootloader
如何自启动linux
2beanet嵌入式
两个问题
如何改变自启动方式?
需要配置参数 修改参数‘0’:1 用户应用程序 2 linux 3 wince
BootLoader如何生成的?
编译bootloader源码生成二进制代码 编译工具(编译器)即ADS ADS是个集成开发环境
2beanet嵌入式
寄存器
影子寄存器 R13 堆栈指针 R14 连接(link)寄存器,用于子程序调 用时保存PC指针 R15 PC 指针 CPSR (当前的程序状态字) SPSR (保存的程序状态字)
2beanet嵌入式
如何使用开发板
ADS使用详解
2beanet嵌入式
修改串口设置:
进一步测试
打开电源,将有数 据打印出来,并自 动启动WinCE 在上电以后,DNW 里面敲回车,将停 在bootloader,如右 图 点击‘3’会运行测试 程序
如何使用开发板
ARM体系结构(一)
2beanet嵌入式:
MMU的功能特点
Memory Management Unit 内存管理单元 ARM体系结构的重要组成 使得虚拟内存成为可能