1. 嵌入式底层开发介绍嵌入式底层开发通常指的是uboot、kernel、rootfs开发。UbootUniversal Boot Loader通用引导加载器是一个主要用于嵌入式系统(Kernel内核)的引导加载程序可以支持多种不同的计算机系统结构包括ARM、AVR32、x86与Nios等。是遵循GPL条款的开放源码项目。KernelLinux内核它是一个用C语言写成符合POSIX标准的类Unix操作系统。通过对CPU资源进行时分复用实现了多进程管理和调度通过各种子模块实现了对内存、磁盘等资源的管理和调度通过给各种外设编写设备驱动以及修改设备树实现了外设与Linux系统的交互。其实嵌入式内核开发的大部分工作就是对外设资源的增、删、改通常就是通过“开发设备驱动”和“修改设备树”完成。RootfsRoot file system根文件系统是内核启动时所mount的第一个文件系统。文件系统是对一个存储设备上的数据和元数据进行组织的机制。这种机制有利于用户和操作系统的交互。2. EAI UbuntuSDK介绍EAI UbuntuSDK是一款由EASY-EAI团队基于ubuntu系统专门优化适配的嵌入式系统它对比传统嵌入式SDK以下特点1支持快速启动常规应用程序运行从开机仅需6-7秒支持1秒级快速启动功能2继承传统ubuntu系统容易安装依赖库与软件生态强大的特点ROS2、python库快速部署3文件系统可靠性高支持RamDisk可自动修复文件系统坏块防止因为磁盘异常/掉电文件系统无法正常启动4系统初始化化可靠性高默认支持外部看门狗(1.6秒)防止因为任何异常导致uboot/kernel无法正常初始化(用户应用程序则调用芯片内置看门狗保护应用程序)5底层开发简单无需研究庞大的Buildroot SDK代码仅需修改内核、设备树6底层开发效率高一般完整编译SDK只需15分钟而传统的Buildroot SDK需要90分钟(同等性能电脑CPU4.2GHz 12核24线程)7支持rootfs一键导出用户在开发板安装好的库与开发好的APP可通过以太网一键导出轻松输出量产镜像8支持软件库在线升级sudo apt-get upgrade即可从我们专用服务器(http://os.easy-eai.com)同步更新跟底层相关性比较大的依赖库(如: rkaiq、rga、gstreamer等),及时修复芯片原厂bug;9应用开发效率高支持开发板本地编译与在线交叉编译在线交叉编译应用依赖库直接依赖到板卡文件系统规避库兼容问题且能利用PC的编译性能与源码编辑器10支持OTA方案规避软件导致的量产事故与应用/系统迭代更新11支持A、B分区方案具有极高的系统可靠性但是会占用大量的存储空间12UI交互方案选择灵活支持安装桌面系统、支持安装浏览器用户可以多种技术方式开发自己的UI界面(默认没有预装运行不占系统资源)13软件部署更灵活支持docker部署。3. EAI UbuntuSDK开发流程固件开发流程介绍【uboot.img】通常由UbuntuSDK源码编译生成但99%的情况无须改动以及替换。【boot.img】是内核镜像通常也是由UbuntuSDK源码生成用户可自由修改。【rootfs.img】是文件系统镜像通常采用【从开发板上完整导出】的方式获得然后拿去替换固件中的rootfs.img