第0课 - 专业嵌入式软件开发引言
专业嵌入式软件开发引言
专题一:硬件篇
-
第1课 - 深入浅出处理器(上)_处理器的基本概念
-
<微处理器VS微控制器,什么是CPU,寄存器的分类,两个关键的CPU寄存器,IO操作,地址映射,处理器启动过程>
-
-
第2课 - 深入浅出处理器(中)_中断
-
<中断的概念和意义,中断服务程序(ISR),中断的意义,中断的类型,中断优先级,中断的应用---程序断点,中断调试的工程应用>
-
-
第3课 - 深入浅出处理器(下)_内存管理(映射)
-
<内存管理单元(MMU),虚拟内存的概念,虚拟内存的意义,虚拟内存的机制,页式内存管理,如何提升电脑性能>
-
-
第4课 - 深入浅出处理器(续)_缓存(cache)
-
<硬件的处理速度,程序访问的局部性,cache高速缓冲存储器,内存和缓存之间的映射,Cache原理软件应用日志调试工具>
-
-
第xx课 - 外设
-
第xx课 - FPGA
专题二:工具篇
-
第6课 - 开发中的辅助工具
-
<开发环境组成,辅助开发工具集---addr2line、strip、ar、nm、objdump、size、strings>
-
-
第5课 - 嵌入式 C 语言编译器
-
<GCC与gcc有什么不同,编译过程,多语言混合开发,gcc 编译选项>
-
-
第7课 - 揭开链接器的面纱(上)
-
<链接器的秘密,目标文件的特点,链接器的工作内容,main函数的位置,自定义程序入口函数,重要链接选项>
-
-
第8课 - 揭开链接器的面纱(中)
-
<链接脚本的意义,链接脚本初探,SECTIONS,MEMORY,ENTRY >
-
-
第9课 - 揭开链接器的面纱(下)
-
<课程目标(模拟嵌入式开发),如何达到可执行程序体积最小的目标,打印函数设计,退出函数设计,链接脚本设计,指定链接选项,模拟嵌入式开发编程实验>
-
-
第11课 - 调试利器 GDB (上)
-
<什么是GDB,为什么需要GDB,GDB(动态分析工具)与binutils(静态分析工具),GDB的常规使用,GDB的启动方式,GDB的应用示例,GDB断点调试>
-
-
第12课 - 调试利器 GDB (下)
-
<watch,x命令,函数调用栈的查看(backtrace, info frames),对程序中的符号进行查看(whatis,ptype)>
-
-
第xx课 -make和makefile
专题三:语言篇
-
第10课 - 汇编语言的内嵌编程(C语言内嵌汇编)
-
<C语言中内嵌汇编,编译器做了什么,常用限制符说明,使用系统服务>
-
-
第13课 - 深入理解程序的结构
-
<静态可执行程序中的段,程序动态加载后生成的段>
-
-
第14课 - 缔造程序兼容的合约(上)
-
<ABI是什么,ABI和API的区别,ABI有什么>
-
-
第15课 - 缔造程序兼容的合约(下)
-
<ABI规定桢栈结构,ebp寄存器,函数调用发生时的细节,常见的函数调用约定,结构体类型的返回值>
-
-
第16课 - 混淆指针与数组的问题
-
<指针与数组在语言层面的操作部分情况等价,指针与数组在二进制层面的操作完全不同,c/c++编译器的缺陷>
-
-
第17课 - volatile,让我保持原样
-
<volatile,const和volatile>
-
专题四:设计篇
-
第18课 - 设计,软件质量之本(上)
-
<软件设计是什么,软件设计的意义,什么是软件质量,如何提高软件质量,架构设计vs软件质量,如何提高自身的软件设计能力,设计思想vs设计原则vs设计模式>
-
-
第19课 - 设计,软件质量之本(中)
-
<设计原则:以人为本,简单就是美,让模块善始善终,重视运行时数据的收集>
-
-
第20课 - 设计,软件质量之本(下)
-
<设计原则:代码自注释,通过机制解决当前问题,防御性程序设计>
-
-
第21课 - 系统模块管理的设计
-
<系统模块化设计,设计时需要思考的问题>
-
-
第22课 - 程序异常处理的设计(上)
-
<异常设计,异常处理的意义,项目中的异常设计>
-
-
第23课 - 程序异常处理的设计(中)
-
<期望的异常输出方式>
-
-
第24课 - 程序异常处理的设计(下)
-
<代码自动生成>
-
-
第25课 - 项目开发的前期设计
-
<项目中需要思考的问题,开发流程的定义,平台与框架的选择,目录结构及源码管理,嵌入式产品的开发效率>
-