摘要: 简介 Linux 应用程序 从用户的角度来看,一台 Linux 产品的价值在于设备上运行的应用程序所能解决的问题。 而 Linux 得到广泛使用的一个原因是有很多开源的应用程序。 编译与部署应用程序的流程 交叉编译的 Makefile 如下所示,设计合理的 Makefile 通过执行以下 3 个命令 阅读全文
posted @ 2023-01-16 15:04 KevinAshton 阅读(494) 评论(0) 推荐(0)
摘要: 背景 示波器是一种显示电平随时间变化的电子仪器,经常用于测量 CPU 总线通信(如 SPI/UART/PWM/...)。 软件工程师在开发嵌入式 Linux 产品时需要用到示波器,为了简单掌握示波器,本文档记载常用操作。 准备环境 将探头接入 1 通道,给示波器上电 可选:按下 Default Se 阅读全文
posted @ 2022-12-22 15:16 KevinAshton 阅读(630) 评论(0) 推荐(0)
摘要: 稳定性是工业产品的定心丸 工业产品往往是无人值守,需要 365x24 持续运行,稳定性是基础。 一旦出现故障,不但产品无法完成应有的功能,而且维保代价大,削弱了产品价值,降低了客户满意度和信心。 为什么产品会出故障 就算一款产品经过正确的设计开发,经过严格的测试,保证功能和性能。 然而,现实工作中, 阅读全文
posted @ 2022-09-22 13:34 KevinAshton 阅读(171) 评论(0) 推荐(0)
摘要: 简介软件升级 无论是修复软件缺陷,还是提高系统性能或添加新功能,软件升级都是不可避免的。 升级一台嵌入式 Linux 设备要考虑的因素有:存储设备类型,文件系统和软件独立性。 以下 3 种方法都可以实现软件升级。 本地更新:技术人员使用 U 盘或 TF 卡逐个更新每台 Linux 设备。 远程更新: 阅读全文
posted @ 2022-09-22 13:33 KevinAshton 阅读(1074) 评论(0) 推荐(0)
摘要: 减少 rootfs 大小 为节省空间而编译 在使用 GCC 时,用 -Os 参数编译程序将使编译器生成最小的代码 arm-linix-gcc -Os <program> 删除应用程序的调试代码 find <rootfs_root> -type f -exec arm-linux-strip {};\ 阅读全文
posted @ 2022-09-22 13:32 KevinAshton 阅读(218) 评论(0) 推荐(0)
摘要: ## MTD 与 Flash Linux 工作站和服务器一般使用磁盘作为存储设备,而嵌入式 Linux 倾向使用 Flash 固态存储设备。 相比磁盘的“读”和“写”操作,Flash 还需要“擦除”,并且它还有写寿命(常见为 10 万次)。 为了更好地操作 Flash 设备 Linux 添加了 MT 阅读全文
posted @ 2022-09-22 13:32 KevinAshton 阅读(1020) 评论(0) 推荐(0)
摘要: 简介根文件系统 根文件系统是 kernel 挂载的第 1 个文件系统,挂载的位置是文件系统层次结构的顶端,表示为 / Linux 要求根文件系统中包含应用程序和工具软件,通过它们来引导系统,初始化系统服务,加载设备驱动程序和挂载额外的文件系统。 从零开始构建根文件系统是一个艰巨的任务,为了专注【将产 阅读全文
posted @ 2022-09-22 13:31 KevinAshton 阅读(505) 评论(0) 推荐(0)
摘要: # 简介 u-boot 启动 Linux 是一部三幕剧:bootloader-->kernel-->init@rootfs 如下图所示 ![](https://img2023.cnblogs.com/blog/1915372/202301/1915372-20230116110508010-1368 阅读全文
posted @ 2022-09-22 13:30 KevinAshton 阅读(372) 评论(0) 推荐(0)
摘要: 为什么要评估开发板 制作 Linux 硬件是一件代价很大且风险很高的事情,为了快速检验可行性,一般会先评估 Linux 开发板。 开发板让 Linux 软件工程师尽快投入开发,也给硬件工程师提供参考设计,确实是个不错的工具。 向厂商申请哪些资源 除了 Linux 开发板硬件外,一般还需要如下的资源 阅读全文
posted @ 2022-09-22 13:29 KevinAshton 阅读(217) 评论(0) 推荐(0)
摘要: 了解编译内核的需求 如果按 嵌入式 Linux 开发 3:搭建开发环境 安装交叉工具链和配置环境变量妥当的话,编译内核比较容易,因为内核结构合理并且不依赖外部文件。 首先要想清楚编译内核的需求,大部分情况下是添加某些功能(如:添加 ppp 通信,添加 yaffs 文件系统,添加某个驱动等)。因此对 阅读全文
posted @ 2022-09-22 13:29 KevinAshton 阅读(240) 评论(0) 推荐(0)