ARM嵌入式LINUX应用程序设计PPT文档格式.pptx
- 文档编号:16089643
- 上传时间:2022-11-19
- 格式:PPTX
- 页数:596
- 大小:3.57MB
ARM嵌入式LINUX应用程序设计PPT文档格式.pptx
《ARM嵌入式LINUX应用程序设计PPT文档格式.pptx》由会员分享,可在线阅读,更多相关《ARM嵌入式LINUX应用程序设计PPT文档格式.pptx(596页珍藏版)》请在冰豆网上搜索。
该标准是基于现有的UNIX实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。
如果没有Internet网,没有遍布全世界的无数计算机黑客通过网络的无私奉献,那么Linux绝对不可能发展到现在的水平。
Linux的诞生与发展从Linux诞生开始,Linux内核就从来没有停止过升级,从0.02版本到1999年具有里程碑意义的2.2版本,一直到我们现在看到的4.0版本。
2022/11/48Linux内核版本有两种:
稳定版和开发版Linux内核的命名机制:
num.num.num第一个数字是主版本号第二个数字是次版本号第三个数字是修订版本号从未停止过升级Linux的应用领域2022/11/49服务器桌面系统嵌入式应用LinuxLinux嵌入式系统开发平台2022/11/410系统软件平台系统硬件平台嵌入式Linux系统需要下面三个基本元素:
系统引导工具用于机器加电后的系统定位引导。
Linux微内核内存管理、程序管理。
始化进程但如果要它成为完整的操作系统并且继续保持小型化,还必须加上硬件驱动程序、硬件接口程序和应用程序组。
选定硬件平台前,首先要确定系统的应用功能和所需要的速度,并制定好外接设备和接口标准。
这样才能准确地定位所需要的硬件方案,得到性价比最高的系统。
应用功能速度1外接设备接口标准2=性价比第1节Linux操作系统概述2022/11/411建立交叉开发环境交叉编译和链接交叉调试系统测试建立交叉开发环境2022/11/412商业类型ARMSoftwareDevelopmentToolkitSDSCrosscompilerMetrowerksCodeWarrior交叉开发环境GNU工具链交叉开发环境是指编译、链接和调试嵌入式应用软件的环境。
它与运行嵌入式应用软件的环境有所不同,通常采用宿主机/目标机模式。
常用的交叉开发环境主要有开放和商业两种类型。
开放的交叉开发环境的典型代表是GNU工具链。
开放类型交叉编译和链接在完成嵌入式软件的编码之后,就是进行编译和链接,以生成可执行代码。
由于开发过程大多是在Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器这就要求在建立好的交叉开发环境中进行交叉编译和链接。
2022/11/413建立交叉开发环境交叉编译和链接交叉调试系统测试交叉调试2022/11/414硬件调试:
硬件调试:
如果不采用在线仿真器,可以让如果不采用在线仿真器,可以让CPU直直接在其内部实现调试功能,并通过在开接在其内部实现调试功能,并通过在开发板上引出的调试端口,发送调试命令发板上引出的调试端口,发送调试命令和接收调试信息,完成调试过程。
和接收调试信息,完成调试过程。
软件调试:
在Linux内核中设置一个调试桩用作调试过程中和宿主机之间的通信服务器。
然后在宿主机中通过调试器的串口与调试桩进行通信应用软件的调试:
嵌入式上层应用软件的调试可以使用本地调试和远程调试两种方法。
嵌入式Linux交叉调试系统测试2022/11/415测试技术指的是软件测试的专门途径,以及能够更加有效地运用这些途径的特定方法。
在嵌入式软件测试中,常常要在基于目标机的测试和基于宿主机的测试之间做出折衷。
基于目标机的测试需要消耗较多的时间和经费,而基于宿主机的测试虽然代价较小,毕竟是在仿真环境中进行的。
嵌入式软件测试中经常用到的测试工具:
内存分析工具性能分析工具覆盖分析工具缺陷跟踪工具嵌入式Linux面临的挑战2022/11/416Linux的实时扩充性改变Linux内核体系结构完善Linux的集成开发环境123Solution扩展Linux的实时性能n向外扩展n向上扩展Linux的内核体系采用的是Monolithic内核体系结构Microkernel一个完整的嵌入式系统的集成开发环境一般需要提供的工具是:
n编译/连接器n内核调试/跟踪器n集成图形界面开发平台编辑器调试器软件仿真器监视器整体集成开发环境还有待提高和完善嵌入式Linux的发展及应用前景由于Linux具有对各种设备的广泛支持性,因此,能方便地应用于机顶盒、IA设备、PDA、掌上电脑、WAP手机、寻呼机、车载盒以及工业控制等智能信息产品中。
与PC相比,手持设备、IA设备以及信息家电的市场容量要高得多,而Linux嵌入式系统的强大的生命力和利用价值,使越来越多的企业和高校表现出对它极大的研发热情。
Linux嵌入式操作系统所具有的技术优势和独特的开发模式给业界以新异,有理由相信,它能成为Internet时代嵌入式操作系统中的最强音。
2022/11/417Linux内核特点2022/11/418Linux内核编程容易可移植性可量测性模块化稳定性和可靠性安全性标准化和互用性完善的网络支持Linux内核既能支持32位体系结构又能支持64位体系结构。
Linux内核全部源代码是遵守GPL软件许可的免费软件开发者可以免费得到社区的贡献、支持、检查代码和测试。
驱动程序可以免费发布给其他人,可以静态编译进内核。
以源码形式发布驱动程序,可以不必为每一个内核版本和补丁版本都提供二进制的程序Linux内核的组成2022/11/419进程调度程序(SCHED)负责控制进程访CPU。
保证进程能够公平地访问CPU,同时保证内核可以准时执行一些必需的硬件操作;
内存管理程序(MM)使多个进程可以安全地共享机器的主存系统,并支持虚拟内存;
虚拟文件系统(VFS)通过提供一个所有设备的公共文件接口,VFS抽象了不同硬件设备的细节。
此外,VFS支持与其他操作系统兼容的不同的文件系统格式;
网络接口(NET)提供对许多建网标准和网络硬件的访问;
进程间通信(IPC)子系统为进程与进程之间的通信提供了一些机制。
这5部分之间是相互依赖的关系存储管理2022/11/420内存管理任务n屏蔽各种硬件的内存结构并向上层返回统一的访问界面页式存储管理机制n每个页面的大小随处理机芯片而异n支持虚拟内存n硬件无关部分n进程的映射和逻辑内存的对换n硬件相关部分n为内存管理硬件提供了虚拟接口分类页表n每个进程保留一张页表,用于将本进程空间中的虚拟地址变换成物理地址。
进程调度2022/11/421当需要选择下一个进程运行时,由调度程序选择最值得运行的进程,依据每个进程的task_struct结构policypriorityrt-prioritycounterpolicy是进程的调度策略两类Linux进程:
普通进程与实时进程实时进程的优先级高于其他进程priority是调度管理器分配给进程的优先级是进程允许运行的时间rt_priority用于实时进程间的选择调度器使用这个域给每个实时进程一个相对优先级可以通过系统调用来改变实时进程的优先级。
counter是进程剩余的时间片是进程剩余的时间片内核源代码目录结构2022/11/422documentationscriptslibnetfskernelipcdriversmminitincludearch内核源代码目录结构内核源代码目录结构Linux存储管理2022/11/423进程虚存空间的管理进程虚存空间的管理虚存空间的映射和虚存区域的建立虚存空间的映射和虚存区域的建立Linux的分页式存储管理的分页式存储管理物理内存空间的管理物理内存空间的管理内存的分配与释放内存的分配与释放内存分配与释放的数据结构内存分配与释放的数据结构内存分配函数内存分配函数kmalloc()虚拟内存的申请和释放虚拟内存的申请和释放进程虚存空间的管理2022/11/424n每一个进程,用一个mm-struct结构体来定义它的虚存用户区。
nmm_struct结构体首地址在任务结构体task-struct成员项mm中:
nstructmm-struct*mm。
Linux的存储管理主要是管理进程虚拟内存的用户区nLinux操作系统采用了请求式分页存储管理方法。
系统为每个进程提供4GB的虚拟内存空间。
各个进程的虚拟内存彼此独立。
n进程运行时能访问的存储空间只是它的虚拟内存空间。
对当前该进程而言只有属于它的虚拟内存是可见的。
mm_struct结构定义在/include/linux/schedul.h中进程虚存空间的管理2022/11/425structmm_structintcount;
pgd_t*pgd;
unsignedlongcontext;
unsignedlongstart_code,end_code,start_data,end_data;
unsignedlongstart_brk,brk,start_stack,start_mmap;
unsignedlongarg_start,arg_end,env_start,env_end;
unsignedlongrss,total_vm,locked_vm;
unsignedlongdef_flags;
structvm_area_struct*mmap;
structvm_area_struct*mmap_avl;
structsemaphoremmap_sem;
mm_struct结构定义在/include/linux/schedul.h中进程虚存空间的管理2022/11/426structvm_area_structstructmm_struct*vm_mm;
unsignedlongvm_start;
unsignedlongvm_end;
pgprot_tvm_page_prot;
unsignedshortvm_flags;
shortvm_avl_height;
structvm_area_struct*vm_avl_left;
structvm_area_struct*vm_avl_right;
structvm_area_struct*vm_next;
structvm_area_struct*vm_next_share;
structvm_area_struct*vm_prev_share;
structvm_operations_struct*vm_ops;
unsignedlongvm_offset;
structinode*vm_inode;
unsignedlongvm_pte;
定义在/include/linu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 嵌入式 LINUX 应用 程序设计