本书作者由以下成员合作编写:
杨源鑫,主编,毕业于广州科技贸易职业学院电子应用技术专业,在校期间一并考取了华南理工大学本科数字媒体艺术专业。2015年7月工作至今,任伟易达集团嵌入式系统工程师一职,主要从事单片机,linux,Android底层开发等相关的技术。
侯继红,副主编,广州科技贸易职业学院电子信息工程技术专业教师,主要担任单片机应用技术、CPLD/FPGA应用技术、PCB应用技术课程的教学工作及企业项目开发工作。有丰富的教学经验及工程项目设计实践经验,近几年,通过CDE创新工作室培养了发不少嵌入式开发人才,曾指导学生获得广东省技能竞赛二等奖3项目,每年指导学生获得广东省大学生科技创新培育专项资金资助,并且研发的科技创新作品于2015年获得广东省挑战杯二等奖。
陈锦勇,副主编,目前为珠海爱肯智能设备有限公司研发部技术总监,曾在知名培训机构尚观担任嵌入式开发讲师,有多年的研发经验,对单片机,linux,Android有深入的理解。
刘凯强,副主编,目前为深圳科曼信息技术有限公司任职嵌入式开发工程师,现今主要从事Android底层和framework层的开发工作。
书籍预计将于2017年10月份编写完成,敬请各位期待!
目录如下:
序言
第一章 嵌入式开发是什么?
1.1 引言
1.2 嵌入式开发需要哪些知识储备
1.3 常见的嵌入式开发平台
1.3.1 单片机系列
1.3.2 ARM系列
1.4 嵌入式Arm Linux系统的构成
1.4.1 硬件电路基础
1.4.2 bootloader
1.4.3 内核
1.4.4 文件系统
1.4.5 应用程序
1.5 本章小结
第二章 嵌入式C开发在工作中的应用
2.1 C语言核心知识
2.1.1数据段、代码段、堆栈段、BSS段的区别
2.1.2位,字,字节,字符等基础
2.1.3 进制转换基础
2.1.4嵌入式常用位运算基础与深入学习
2.2 实践案例
2.2.1位运算工作运用实战开发案例(一):如何分离一个数的高低位
2.2.2 位运算工作运用实战开发案例(二):如何将两个字节合并为一个字节
2.2.3 位运算工作运用实战开发案例(三):Linux内核中实现的高低位互换函数
2.2.4 位运算工作运用实战开发案例(四):嵌入式C快速翻转一个数的二进制高低位
2.2.5 位运算项目实战1:如何对一个有规律的数组表进行位移(电子琴LED彩灯案例)
2.2.6 位运算项目实战2:分离一个16进制数取出相应的位1或位0(电子琴音频解码案例)
2.3 预处理 , const、static、字符串处理在嵌入式中的应用
2.3.1 宏定义与typedef的区别
2.3.2 const关键字
2.3.3 static关键字
2.3.4 sizeof
2.3.5 strcat 函数
2.3.6 strcpy 函数
2.3.7 strlen 函数
2.3.8 strcmp函数
2.4 C语言内存管理与指针
2.4.1 一维数组
2.4.2 二维数组
2.4.3 C语言之指针
2.4.4 为什么内存是线性分布的
2.4.5 深入浅出剖析函数指针与回调函数
2.5 谁说面向过程语言C不能面对对象化
2.5.1 C语言之结构体
2.5.2 C语言之结构体对齐
2.5.3 结构体的封装性之结构体内嵌函数指针
2.5.4 结构体的继承性之结构体中内嵌结构体
2.5.5 结构体之多态性之结构体中void *万能指针
2.5.6 Linux内核中offset宏与container_of宏深度剖析
2.5.7 什么是共用体联合体与大小端
2.6 C语言之标准C文件操作应用
2.6.1 fopen函数、fclose函数
2.6.2 fwrite函数、fread函数
2.6.3 lseek函数
2.6.4 sprintf函数
2.7 实战项目
2.7.1 熟悉STM32单片机库函数使用
2.7.2 弹弹方块C语言实现
2.7.3 学生信息管理系统的实现
2.7.4 空洞文件与一次性产生多个文件
2.7.5 checksum软件的设计原理与应用
2.7.6 使用C语言编写一个能够将二进制文件转化为一个C数组头文件。
2.7.7 数据压缩与解压缩算法C语言实现
2.7.8 字符串压缩算法与解压缩算法C语言实现
2.7.9 C语言之查表法项目运用
2.8 本章小结
第三章 嵌入式Linux 基础
3.1 Linux系统简介
3.1.1使用Vmware虚拟机安装Linux操作系统
3.1.2 Linux工作中基本命令的操作
3.2 Linux 工作中vim编辑器的操作
3.2.1在Linux下快速入门Linux C语言编程
3.2.2在Linux下使用GDB调试代码
3.2.3 Linux 下Shell脚本基础编程快速入门
3.3 利用Makefile管理软件工程
3.4 在Linux下制作静态库和动态链接库的方法
3.5 为你的Linux系统配置网络
3.6 Linux下配置网络与搭建服务器
3.6.1 Linux下搭建telnet服务器
3.6.2 Linux下搭建samba服务器
3.7 代码管理
3.7.1 使用Source Insight开发项目
3.7.2 使用Git管理本地代码
3.8 使用SecureCRT软件的串口调试功能
3.9 本章小结
第四章 嵌入式Linux应用开发基础
4.1 文件IO 编程
4.2 进程实战开发
4.3 进程间通信
4.4 多线程编程
4.5 网络编程
4.6 项目实战
4.6.1实战项目(一): Linux audio编程实战
4.6.2实战项目(二): 利用V4L2编写一个摄像头应用程序
4.6.3实战项目(三):Input系统应用编程实例
4.6.4实践项目(四):Linux 下C语言BMP图操作编程
4.7 本章小结
第五章 基于ARM contexA9 Linux驱动实战开发
5.1 认识开发板友善之壁开发板
5.2 从零开始搭建友善之臂tiny4412开发环境
5.3 编译uboot与linux内核
5.4 制作根文件系统
5.5 熟悉开发板的启动方式
5.6 如何刷写开发板
5.7 Linux设备驱动程序开发
5.7.1手把手教你实现字符设备驱动
5.7.2 简单的Kconfig与Makefile编写
5.7.3 手把手教你实现misc设备驱动
5.7.4 手把手教你实现中断
5.7.5 手把手教你实现定时器
5.7.6 手把手教你实现中断底半部tasklet实现
5.7.7 手把手教你实现中断底半部workqueue实现
5.7.8 手把手教你实现input设备驱动程序
5.7.9 认识板级文件
5.8 实践项目:
5.8.1基于tiny4412 led驱动编程
5.8.2基于tiny4412 蜂鸣器驱动编程
5.8.3获取开发板上独有的ID号
5.8.4 基于tiny4412 adc驱动编程
5.8.5基于tiny4412的ft5x06触摸屏驱动编写
5.8.6 Linux内核中最常用的调试方法----printk函数的使用
5.9 本章小结
第六章 全文总结