这是一个教学仓库。不使用具体硬件,直接使用Keil做模拟器,使用虚拟串口做输入输出,直接在电脑上编译运行,保证不被硬件问题卡住,从Keil官网下载Keil软件后再下载此工程,打开工程运行程序后能直接看到结果。重点介绍8051的寄存器、指令集、Keil伪指令、汇编Boot、汇编编程套路、C语言编程套路、软件框架、通信框架。
* 硬件平台均为QEMU模拟器。 1. 当前裸机项目使用ARM Cortex-A7 32位内核、带有GPU(2D 3D显示加速、图片和音频视频编解码)的博通BCM2836芯片(树莓派2B同款硬件,但不使用树莓派的系统和软件)。 2. 当前Linux项目使用ARM Versatile Express开发板,从源码编译运行U-Boot、Linux和根文件系统。
逐步展示嵌入式软件C语言编程技巧:编程规范、注释规范、源文件管理、编译控制、版本命名、模块编写、驱动编写、应用编写、协议设计、网络编程、系统架构、模块设计、接口设计、人机交互、单元测试、算法优化、版本管理…… 配套哔哩哔哩视频主页:【才鲸嵌入式】https://space.bilibili.com/106424039
模块统一接口,缓存队列、FIFO,双向循环链表,移植Linux menuconfig模块配置自己的应用程序。 配套哔哩哔哩视频:[【C语言】用Linux风格编译你自己的程序](https://www.bilibili.com/video/BV1rA411K7tr/)
实现在32位嵌入式硬件中运行的播放器和录像机,自行实现mp4、mkv、ts封装与解封装(不使用ffmpeg库),使用硬件音视频编解码器,自行实现音视频同步。(当前代码暂时用了libavcodec代替了板子的编解码器,用sdl2代替了板子的显示屏,可直接在Linux系统中编译运行,要下载到板子运行时需要将libavcodec和sdl2替换成板子的代码,这个比较容易,涉及到具体板子的代码暂不上传)