[课程安排]
课程 内容
嵌入式Linux开发环境 嵌入式Linux软件开发:嵌入式开发概念,嵌入式软件领域,Linux在嵌入式的应用,深圳嵌入式行业优势
Linux操作系统:Linux的历史与发展,Linux发行版本,在VMWare上安装Linux,VMWare-Linux网络配置
Linux文件和服务: FTP共享,Samba服务器共享,NFS共享,VMWare共享
Linux命令:文件系统管理,磁盘管理,用户与组管理,帮助与查询,进程控制管理,文件压缩
Vim/Emacs的使用
Linux shell编程:shell变量,流程控制,交互式脚本,shell函数,文件过滤器,shell脚本实例
GUN GCC: gcc组成,可执行文件构造过程(预处理、编译、汇编、链接),gcc选项,gcc代码优化,GUN binutils工具,objdump反汇编
静态库与动态库:库文件的概念,静态链接与动态链接,创建静态库,创建动态链接库,动态库的隐式调用与显示调用
Makefile:Makelfile概念,Makefile格式,Makefile的简化,项目Makefile分析
Autotool: Autotool生成Makefile流程,configure脚本选项,Autotool-Makefile使用,Autotool开源项目的移植
GDB:用gdb调试程序,用gdb定位程序问题,gdb调试core dump
嵌入式交叉开发环境:交叉开发环境的组建,交叉编译,交叉调试,挂载调试运行中的程序
嵌入式Linux高级应用 嵌入式软件移植:移植的概念,简单Makefile项目的移植,Autoconf生成项目的移植,图形界面配置
项目实战:构建嵌入式Linux系统( Bootloader架构和功能、vivi与uboot、Busybox根文件系统、Linux内核裁剪、BootLoader和Kernel固化)
嵌入式数据库:嵌入式数据库介绍,SQLite移植与使用,SQL语言,SQLite编程
嵌入式Web: 嵌入式Web介绍,BOA介绍,HTML介绍,BOA Web Server移植,BOA动态CGI程序编写
Qt:signal&slot机制,Qt界面程序开发
Qtopia: 嵌入式Qtopia移植的Arm开发板, Qtopia窗口、菜单、对话框、控件, Qtopia可视化编程
Minigui:消息驱动机制,回调函数, Minigui窗口、菜单、对话框、控件, Minigui界面程序开发, Minigui移植到Arm开发板
项目实战:利用MiniGUI和SQLite实现电子点菜单
课程 内容
嵌入式C语言编程 格式化输入/输出:格式化输出printf,格式化输出scanf,其他常用输入/输出函数(getchar、getch、gets、putch、puts)
分支结构程序设计:if语句,多路分支switch
循环结构程序设计:while循环,for循环,do while语句,break和continue语句
使用数组:数组的概念,一维数组,二位数组,字符数组和字符串,字符串反转,查找*数,数据排序
使用函数:函数的概念,函数工作过程,编写函数,函数的参数,函数调用,递归函数
模块化程序设计:模块化概念,程序模块结构,变量的作用域,变量的存储类型(auto、register,static、extern),函数、文件、变量的关系
编码规范:文件结构,程序版式,命名规则,防错编程,程序效率
使用指针:内存与变量,指针和简单变量,指针和数组,指向多维数组的指针,指针和字符串,指针数组,指向指针的指针,指针和函数,指针和const,复杂类型指针,指针的理解(指针类型,指针的值,指针所指向的类型,指针本身占据的内存区域)
存储管理:内存组织方式,堆和栈的比较,动态内存管理(malloc、calloc、realloc、free),丢失的内存
结构、联合和枚举:结构的概念,结构嵌套,结构变量初始化,结构数组,结构指针,向函数传递结构,联合定义,结构中嵌套联合,枚举定义,使用typedef
位运算和位域:二进制数,位逻辑运算,位移运算,位运算复合赋值,位域结构,位域的使用,位域与联合的使用
文件输入/输出:文件与数据流,文件的打开与关闭,文件读写,文件随机访问,文件缓冲区,文件管理
预处理:预处理功能,预处理命令,无参数宏,带参数宏,预处理操作符#和##,条件编译,预定义宏名,#line, #pragma, #error,内联函数
字符串处理:字符串的存储,字符和字符串检测函数,查找字符串,比较字符串,连接字符串,复制字符串,字符和字符串转换,strrev,strset,strtok