210 likes | 463 Views
《 嵌入式系统程序设计 》 课程总结. 主要内容(课堂). 嵌入式系统基础 嵌入式 Linux C 程序开发 嵌入式 Linux C 语言基础 嵌入式 Linux 开发环境 嵌入式 Linux 文件 I/O 编程. 多任务编程 多进程 / 多线程 进程间通信 网络编程 设备驱动开发 QT 图形编程. 嵌入式系统概念 交叉编译 交叉调试 Bootloader 作用. Vi Gcc Gcc 编译流程 常用选项 库相关选项 Gdb 上机时进行的操作 Make 能解释规则含义. 数据段 BSS 段 代码段 栈 堆. 字节序.
E N D
主要内容(课堂) • 嵌入式系统基础 • 嵌入式Linux C程序开发 • 嵌入式Linux C语言基础 • 嵌入式Linux开发环境 • 嵌入式Linux文件I/O编程 • 多任务编程 • 多进程/多线程 • 进程间通信 • 网络编程 • 设备驱动开发 • QT图形编程
嵌入式系统概念 • 交叉编译 • 交叉调试 • Bootloader作用
Vi • Gcc • Gcc编译流程 • 常用选项 • 库相关选项 • Gdb • 上机时进行的操作 • Make • 能解释规则含义
数据段 • BSS段 • 代码段 • 栈 • 堆
系统调用与用户编程接口API的区别 • 文件描述符概念 • open()/read()/write()/close()与fopen()/fread()/fwrite()/fclose()的区别 • 解释文件锁的应用场景,fcntl与lockf • fork() • 父进程回收子进程需要调用wait与waitpid • exit()与_exit()的区别
管道 • 单向性,往1号fd写,从0号fd读 • 消息队列 • 共享内存 • 信号量 • 套接字 • 信号量
TCP/UDP套接字编程模型 • 并发处理模型
Linux将所有设备当作文件进行处理,位于/dev目录中Linux将所有设备当作文件进行处理,位于/dev目录中 • Linux系统的设备分为3类:字符设备,块设备,网络设备 • 字符设备通常以字节为单位顺序读写的设备 • 块设备通常指需要以块为单位随机读写的设备 • 设备驱动程序位于操作系统内核空间 • 解释字符设备与块设备 • 主设备号,次设备号,具备相同主设备号的设备之间公用同一驱动程序,而用次设备号来标识具体物理设备 • Insmod • Rmmod • Lsmod • 解释mknod /dev/mytestdevice c 59 0 • 内核模块编程中打印信息的函数printk,输出信息的位置是/var/log/message
信号与插槽机制是QT的核心机制,用于对象之间的通信,实现程序对用户操作界面时间的响应信号与插槽机制是QT的核心机制,用于对象之间的通信,实现程序对用户操作界面时间的响应 • Qmake用法 • Qmake –project • Qmake • Make
在宿主机通常使用minicom来通过串口与开发板交互,编译可以运行在开发板上的程序用的编译器命令是arm-linux-gcc,远程调试开发板上的程序用的命令是arm-linux-gdb,gdbserver运行在开发板上在宿主机通常使用minicom来通过串口与开发板交互,编译可以运行在开发板上的程序用的编译器命令是arm-linux-gcc,远程调试开发板上的程序用的命令是arm-linux-gdb,gdbserver运行在开发板上 • 方便开发调试,要用到nfs,开发板充当nfs客户端,宿主机充当nfs服务器 • 在宿主机上搭建tftp服务器是为了方便bootloader下载内核与文件系统 • 为了确认宿主机与开发板之间的网络连通,使用ifconfig命令将二者设置统一网段的IP • 解释 • scp root@192.168.0.1:/root/Work/Helloworld /root
嵌入式系统程序开发环境熟悉 • Web服务器实现(多进程/多线程/多路复用) • QT • 驱动
工具链(ToolChain)安装 • 开发环境 • Bootp • Tftp • Nfs • Minicom配置 • 内核的定制/下载 • 文件系统定制/打包/下载 • 利用USB(HOST)访问存储设备(U盘)
使用厂商提供的交叉编译环境 • 搭建开发环境 • 自己从头编译构建也是可以的,但是会有挑战性 • 下载内核/文件系统 • 厂商提供有文件系统骨架 • 根据所做应用的不同,需要定制内核/文件系统 • 如何从一个目录打包成文件系统 • 如果定制一个只读的文件系统呢? • Mount,拷贝出来,加内容,重新打包 • 测试程序 • Ssh上传,文件系统可写? • Nfs • 整个文件系统烧写
在宿主机通常使用minicom来通过串口与开发板交互,编译可以运行在开发板上的程序用的编译器命令是arm-linux-gcc,远程调试开发板上的程序用的命令是arm-linux-gdb,gdbserver运行在开发板上在宿主机通常使用minicom来通过串口与开发板交互,编译可以运行在开发板上的程序用的编译器命令是arm-linux-gcc,远程调试开发板上的程序用的命令是arm-linux-gdb,gdbserver运行在开发板上 • 方便开发调试,要用到nfs,开发板充当nfs客户端,宿主机充当nfs服务器 • 在宿主机上搭建tftp服务器是为了方便bootloader下载内核与文件系统 • 为了确认宿主机与开发板之间的网络连通,使用ifconfig命令将二者设置统一网段的IP • 解释 • scp root@192.168.0.1:/root/Work/Helloworld /root
题型 • 填空 • 解释/简答 • 程序分析 • 关于上机报告 • 标题:学号+姓名+嵌入式上机报告 • 格式word2003 • 1257352813@qq.com
其他 • 源代码 • 阅读,分析,理解,借鉴 • 关于我们实验室/团队 • 祝大家学有所成
其他 • 马志欣 • 李龙海 • 苏锐丹 • 陈勉 • 刘志娟 • 刘锦辉 • 张剑贤 • 付少锋