您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 基于AT91产品的Linux开发入门介绍
嵌入式linux的简单介绍嵌入式linux开发环境建立嵌入式linux应用开发简介嵌入式linux驱动开发简介嵌入式linux图形库嵌入式linux根文件系统建立开放性多用户多任务良好用户界面设备独立性丰富的网络功能可靠的系统安全良好的可移植性Linux操作系统特点:Linux是一个多任务,多用户的操作系统。以其很好的稳定性赢得了广大用户,并迅速发展成为操作系统中的主流,包含内核、系统工具、完整的开发环境和应用集。linux嵌入式最小系统构成:Bootloader。Linux微内核根文件系统应用程序。硬件的驱动程序运行时支持函数库开发环境的建立(硬件需求)5服务器便携电脑网线LINUX开发服务器开发工作站点路由器交换机目标开发板Linux服务器一台路由器一台Windows工作站一台AT91开发板一块交换机一台开发环境的建立(工具软件需求)6操作系统:FedoraWindowsXpGCC工具链linux服务器应用DHCP服务器Telnet服务器SSH服务器TFTP服务器windows客户端应用终端登录工具Xshell超级终端scrt401代码编辑UEStudio代码阅读工具SourceInsight开发环境的建立(代码需求)Bootloaderu-boot-1.1.3Kernel2.6.26-rc8BusyBoxBusybox1.11.0图形库QtopiaDirectFb第三方库jpeg,mp3等库第三方应用媒体播放,游戏模拟器等7开发环境建立(linux服务器配置)Fedora的安装(要启用telnet和ssh服务)安装Tftpserver的安装下载tftp-server-0.42-4.i386.rpm软件包安装:rpm–ivhtftp-server-0.42-4.i386.rpm修改tftpserver配置文件vim/etc/xinetd.d/tftp8开发环境建立(linux服务器配置)安装DHCP服务器:下载dhcp-3.0.5-35.fc7.i386.rpm软件包安装:rpm–ivhdhcp-3.0.5-35.fc7.i386.rpm修改dhcp配置文件vim/etc/dhcpd.conf9开发环境建立(linux服务器配置)安装xinetd设置NFS服务:下载xinetd-2.3.14-11.i386.rpm软件包安装:rpm–ivhxinetd-2.3.14-11.i386.rpm配置NFS服务vim/etc/export添加下面的内容:/home/rootfs/*(rw,no_root_squash,sync)10开发环境建立(linux服务器配置)总结上面的配置我们导出了两个目录/home/kernel目录使用/etc/xinetd.d/tftp文件配置/home/rootfs目录使用/etc/export文件配置11开发环境建立(Windows端)安装远程登录软件XshellScrt40112开发环境建立(编译器安装)ARMLINUXGCC工具链安装下载arm-2007-01-21-src.iso安装mountarm-2007-01-21-src.iso/mnt-oloopcd/mnt./install–d/opt配置路径vim/etc/profile加入:PATH=$PATH:/opt/usr/bin:/opt/arm/usr/bin13开发环境建立(linux内核源代码安装)linux内核源代码安装下载合适的内核下载at91补丁解压内核tarxvjflinux-2.6.20.tar.gz2打补丁zcat2.6.xx-at91.patch.gz|patch-p114开发环境建立(linux内核源代码安装)配置目标板清除以前的平台配置参数makedistclean编辑MakefilevimMakefile修改如下:ARCH?=armCROSS_COMPILE?=arm-linux-配置at91平台默认参数makeat91sam9261ek_defconfig15开发环境建立(u-boot源代码安装)u-boot源代码安装下载u-boot源代码下载u-boot的at91的补丁解压u-boot打入at91补丁清除以前的配置makedistclean配置at91平台makeat91sam9261ek_config16开发环境建立(bootstrap源代码安装)安装bootstrap下载从atmel网站bootstrap解压缩到windowsxp下下载winarm解压winarm缩到windowsxp下设置的arm-elf-gcc路径到xp系统环境变量17开发环境建立(编译方法)linux内核的编译(linux服务器)makecleanmakemenuconfigmakeuImageu-boot的编译(linux服务器)makecleanmakebootstrap的编译(windowsxp工作站)makecleanmake18小结硬件大致需求软件大致需求linux服务安装配置arm-linux-gcc工具链的安装linux内核源代码的安装u-boot源代码的安装bootstrap源代码的安装编译方法19应用开发简介(GCC)GCC简介编译器汇编器连接器调试器库函数头文件20应用开发介绍(GCC)GCC编译过程介绍预处理gcc–Ehello.c–ohello.I编译gcc–Shello.i-ohello.s汇编gcc–chello.s–ohello.o连接gcchello.o–ohello21预处理编译汇编链接应用开发介绍(GCC)GCC常用模式GCC编译连接模式gcchello.c-ohelloGCC编译模式gcc–chello.c–ohello.o多源文件编译gcc-otestfirst.csecond.cthird.c22应用开发介绍(GCC)GCC常用选项指定包含文件路径:–Igcctest.c–I../inc-otest指定链接的库:-lgcc-ljpeghello.c指定库路径:-L编译优化:-O生成调试信息:-g定义符号常量:-Dgcc-DCONFIG_URAT0_ONhello.c-ohello警告开关:-Wallgcc–Wallhello.c–ohello23应用开发介绍(GDB)GDB使用注意:编译时必须使用-g选项生成调试信息GDB命令:list:列文件清单run:运行程序后可以根程序参数break:设置断点break3设置第3行deletebreakpoint:删除断点disablebreakpoint:禁止断点enablebreakpoint:使能断点24应用开发介绍(GDB)setvariable:将值赋予变量print:显示一个变量的值外step:单步运行call:调用函数infofiles:显示被调试文件的详细信息infolocal:显示当函数中的局部变量信息infovar:显示所有的全局和静态变量名称25应用开发介绍(常用库函数)操作系统提供函数库:I/O子程序:creat,open,read,write进程控制:exec,fork文件属性:access,chmod26应用开发介绍(常用库函数)标准C库函数标准I/O:fopen,fread,getc,fgetc,gets,scanffwrite,put,putc,puts,fputs,printffprintfpasswd处理:getpwuid,getpwnamgroup处理:getgrnam,getuid加密子程序:setkey,encrypt,crypt运行shell:system27编写实例#includestdio.hintmain(void){printf(“helloworld\r\n”);}arm-linux-gcchello.c-ohello./hello28小结gcc的简介gcc的模式和命令及使用gdb的介绍和命令及使用c库函数简单介绍helloworld实例29驱动开发介绍驱动定义?一段插入到操作系统帮助访问硬件的代码为什么要编写驱动?多用户共享硬件操作系统为应用提供硬件访问统一接口提高系统的健壮性编写驱动注意事项效率高稳定只提供功能不提供策略30驱动开发介绍(linux驱动特点)设备方式管理Linux中的设备分类字符设备块设备网络设备31驱动开发介绍(驱动层次)字符设备和块设备面向的上一层是文件系统层。块设备和字符设备的访问接口都是一组基于文件的系统调用,如:open,read,write等。32用户进程文件系统层设备驱动层硬件层驱动开发介绍(驱动层次)网络设备上一层是网络协议层。设
本文标题:基于AT91产品的Linux开发入门介绍
链接地址:https://www.777doc.com/doc-2533502 .html