当前位置: 首页 > news >正文

瑞芯微(EASY EAI)RV1126B 嵌入式底层开发简介

1. 嵌入式底层开发介绍

嵌入式底层开发通常指的是:uboot、kernel、rootfs开发。

Uboot:(Universal Boot Loader,通用引导加载器)是一个主要用于嵌入式系统(Kernel,内核)的引导加载程序,可以支持多种不同的计算机系统结构,包括ARM、AVR32、x86与Nios等。是遵循GPL条款的开放源码项目。

Kernel:Linux内核,它是一个用C语言写成,符合POSIX标准的类Unix操作系统。通过对CPU资源进行时分复用,实现了多进程管理和调度;通过各种子模块,实现了对内存、磁盘等资源的管理和调度;通过给各种外设编写设备驱动,以及修改设备树,实现了外设与Linux系统的交互。其实嵌入式内核开发的大部分工作,就是对外设资源的增、删、改,通常就是通过“开发设备驱动”和“修改设备树”完成。

Rootfs:(Root 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分钟(同等性能电脑,CPU@4.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分区方案,具有极高的系统可靠性,但是会占用大量的存储空间;

(12)UI交互方案选择灵活,支持安装桌面系统、支持安装浏览器,用户可以多种技术方式开发自己的UI界面(默认没有预装运行,不占系统资源);

(13)软件部署更灵活,支持docker部署。

3. EAI UbuntuSDK开发流程

固件开发流程介绍:

【uboot.img】通常由UbuntuSDK源码编译生成,但99%的情况无须改动以及替换

【boot.img】是内核镜像,通常也是由UbuntuSDK源码生成,用户可自由修改。

【rootfs.img】是文件系统镜像,通常采用【从开发板上完整导出】的方式获得,然后拿去替换固件中的rootfs.img

http://www.jsqmd.com/news/873332/

相关文章:

  • 【燃烧机】基于matlab模拟了燃烧机的热力学循环分析活塞动力学以及温度和压力变化对发动机效率的影响【含Matlab源码 15557期】
  • Markdown Here:一键转换技术文档的浏览器扩展神器
  • 有哪些AI写作辅助软件是真的契合专业内容,而不是通用套壳?
  • 设计项目风险提前预判预警程序,拆解创业工作项目,提前识别潜在风险点。
  • STC89C52控制DAC0832的三种姿势详解:直通、单缓冲、双缓冲到底怎么选?
  • C++中组合详解及其作用介绍
  • OpenClaw从入门到应用——自动化:对比Cron 与 Heartbeat
  • 14001开源:黄大年茶思屋 难题揭榜 第140期全加密流量高精度识别与轻量化推理技术 标准化解题写作框架
  • 别再只用运放了!用HCNR201A光耦给你的Arduino/STM32项目加个高速模拟隔离“盾牌”
  • 别再乱点按钮了!LabVIEW布尔控件6种机械动作的保姆级图解(附官方范例查找方法)
  • C++类的构造与析构特点及作用详解
  • 创业公司如何用 Taotoken 控制 AI 应用开发与测试成本
  • AutoUnipus:三步实现U校园自动化答题,100%正确率解放学习时间!
  • 企业财税合规实战:3步帮你重构账务数据,化解现金流风险
  • 告别静默推送!用UniApp+UniPush2.0打造高点击率消息通知(附完整项目配置)
  • 无需编程的13种语言文本挖掘工具:KH Coder完整指南带你5分钟上手
  • 成年人最大的牢笼:活在别人的操作系统里
  • 如何在苹果电脑上免费运行Windows应用:Whisky的完整指南
  • 书匠策AI拆解|毕业论文全流程“开挂指南“,2025届毕业生必看的写论文黑科技!
  • QGIS插件QuickOSM实战:5分钟搞定城市级路网、水系与POI数据,为你的地图项目快速打底
  • MyOS之Makefile入门
  • 14002开源:黄大年茶思屋 难题揭榜 第140期 非均匀雷达阵列的高精度高效率计算和排布算法 标准化解题写作框架黄大年茶思屋 难题揭榜 第140期
  • 银行业务学习:深入理解直贴(贴现)、转贴现、再贴现
  • 华硕笔记本性能控制终极指南:用G-Helper告别臃肿,重获系统掌控权
  • G-Helper终极指南:华硕笔记本显示优化与色彩管理深度解析
  • Python抖音机器人实战指南:3步实现智能颜值检测与自动化运营
  • 14003开源:黄大年茶思屋 难题揭榜 第140期 异构大规模资源协同分配多目标优化问题 标准化解题写作框架
  • 基于SpringBoot的旅游网站的设计与实现(源码+论文)
  • WeChatExporter深度解析:永久保存微信聊天记录的完整技术方案
  • 创建MQTT连接时如何设置参数?