最新要闻
- 当前头条:日本最大啤酒商要重返中国:你爱日啤、德啤还是国啤?
- 3999元起 华为Vision智慧屏3开售:720P秒变4K
- 刀塔循环圈单机地图 刀塔循环圈-天天即时看
- “暖蜂驿站”温暖“两新”群体 相城区太平街道打造“15分钟暖蜂服务圈”-每日关注
- 首发2999元 联想百应新款迷你主机上架:13代i5、机身仅0.5L 全球快消息
- 满油满电续航1370公里 加速7秒内!吉利银河L7上市:13.87万起|世界观焦点
- NVIDIA发布535.98驱动更新:大幅提升《暗黑破坏神4》帧数 每日快讯
- 当前观察:4799元开售!一图看懂努比亚Z50 Ultra摄影师版:玻璃“皮革”独一家
- 市场监管总局:CCC认证制度实施以来,儿童玩具合格率显著提升 每日关注
- 从蔚小理到理小蔚 蔚来汽车做高端砸换电能否逆袭?|今日报
- 华为凌霄子母路由Q6E正式开售:电线变网线 全屋Wi-Fi满格
- 《小美人鱼》内地票房突破2000万!累计观影人次达54.7万 全球报道
- 摩尔线程显卡支持DX11游戏!国产第一家
- 针刺只是小儿科!吉利银河L7电池遭“蹂躏”:跌落水泡火烧撞击均无碍
- 航天宏图: 公司无人机业务:业务领域覆盖国土测绘、环保监测、河道监测、电力巡检、管道巡线、灾情监测等
- 或有剧毒!印度学生午餐中现20厘米死蛇:多人进餐后呕吐昏迷 环球要闻
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
视点!掌握嵌入式Linux编程0简介
简介
多年来,Linux一直是嵌入式计算的主流。然而,涵盖这一主题的书籍却少之又少:本书旨在填补这一空白。术语 "嵌入式Linux "没有很好的定义,可以应用于从恒温器到Wi-Fi路由器到工业控制单元等各种设备内部的操作系统。然而,它们都是建立在相同的基本开源软件上。这些就是我在本书中描述的技术,基于我作为工程师的经验和我为培训课程开发的材料。
(相关资料图)
技术不会停滞不前。围绕嵌入式计算的行业与主流计算一样容易受到摩尔定律的影响。这意味着指数级的增长,意味着自本书第一版出版以来,有大量的东西发生了令人惊讶的变化。这第三版经过全面修订,使用了主要开源组件的最新版本,其中包括Linux 5.4、Yocto Project 3.1 Dunfell和Buildroot 2020.02 LTS。除了Autotools之外,本书现在还包括CMake,这是一个现代的构建系统,近年来被越来越多的人采用。
《掌握嵌入式Linux编程》大致按照你在实际项目中遇到的顺序来涵盖这些主题。前八章涉及项目的早期阶段,包括选择工具链、引导程序和内核等基础知识。我以Buildroot和Yocto项目为例,介绍了嵌入式构建系统的概念。本节最后对Yocto项目进行了新的深入介绍。
第2节,第9至15章,探讨了在认真进行开发之前需要做出的各种设计决定。它涵盖了文件系统、软件更新、设备驱动、初始程序和电源管理等主题。第12章演示了使用分线板进行快速原型开发的各种技术,包括如何阅读原理图、焊接焊头以及使用逻辑分析仪对信号进行故障诊断。第14章是对Buildroot的深入研究,你将学习如何使用BusyBox runit将你的系统软件分割成独立的服务。
第3节,第16、17和18章,将在项目的实施阶段帮助你。我们从Python打包和依赖性管理开始,随着机器学习应用继续风靡全球,这个话题的重要性越来越大。接下来,我们继续讨论各种形式的进程间通信和多线程编程。本节最后仔细研究了Linux是如何管理内存的,并演示了如何使用现有的各种工具来测量内存使用情况和检测内存泄漏。
第四部分包括第19章和第20章,向你展示了如何有效地利用Linux提供的许多调试和剖析工具,以检测问题和识别瓶颈。第19章现在介绍了如何配置Visual Studio Code以使用GDB进行远程调试。第20章现在包括了BPF的内容,这是一项新的技术,能够在Linux内核内部进行高级程序跟踪。最后一章汇集了几条线索来解释Linux如何用于实时应用。
每一章都介绍了嵌入式Linux的一个主要领域。它描述了背景,以便你可以学习一般的原则,但它也包括详细的工作实例,说明每一个领域的情况。你可以把它当作一本理论书,或一本实例书。如果你能同时做到这两点,效果就最好了:理解理论并在现实生活中进行尝试。
本书适用对象
本书是为那些对嵌入式计算和Linux有兴趣的开发人员编写的,他们希望将自己的知识扩展到该主题的各个分支。在编写本书时,我假定他们对Linux命令行有基本的了解,在编程实例中,对C和Python语言有一定的了解。有几章集中讨论了嵌入式目标板中的硬件,因此,熟悉硬件和硬件接口在这些情况下将是一个绝对的优势。
本书的内容
第1章 "起步",通过描述嵌入式Linux生态系统和你在开始项目时可利用的选择来设置场景。
第2章,学习工具链,描述了工具链的组成部分,并告诉你如何为目标板创建一个交叉编译代码的工具链。它描述了从哪里获得工具链,并提供了如何从源代码构建工具链的细节。
第3章,关于引导程序,解释了引导程序在将Linux内核载入内存中的作用,并以U-Boot为例。它还介绍了设备树,作为几乎所有嵌入式Linux系统中用来编码硬件细节的机制。
第4章,配置和构建内核,提供了关于如何为嵌入式系统选择一个Linux内核并为设备内的硬件进行配置的信息。它还包括如何将Linux移植到新硬件上。
第5章,构建根文件系统,通过逐步指导如何配置根文件系统,介绍了嵌入式Linux实现的用户空间部分的思想。
第6章,选择构建系统,包括两个常用的嵌入式Linux构建系统:Buildroot和Yocto项目,它们可以自动完成前四章中描述的步骤。
第7章,用Yocto开发,演示了如何在现有BSP层上构建系统映像,用Yocto的可扩展SDK开发板载软件包,以及推出自己的嵌入式Linux发行版,并完成运行时软件包管理。
第8章 "引擎盖下的Yocto "是对Yocto构建工作流程和架构的介绍,包括对Yocto独特的多层方法的解释。它还通过实际配方文件的例子,分解了BitBake的语法和语义的基本知识。
第9章 "创建存储策略 "讨论了管理闪存的挑战,包括原始闪存芯片和嵌入式MMC(eMMC)包。它描述了适用于每种技术类型的文件系统。
第10章,在现场更新软件,研究了设备部署后更新软件的各种方法,包括完全管理的空中(OTA)更新。讨论的关键话题是可靠性和安全性。
第11章,与设备驱动程序的交互,描述了内核设备驱动程序如何通过实现一个简单的驱动程序与硬件交互。它还描述了从用户空间调用设备驱动程序的各种方法。
第12章,使用突破板进行原型开发,演示了如何使用为BeagleBone Black预制的Debian映像和外围突破板来快速制作硬件和软件原型。你将学会如何阅读数据表、为板子布线、Mux设备树绑定以及分析SPI信号。
第13章,启动--init程序,解释了第一个用户空间的程序--init--如何启动系统的其他部分。它描述了三个版本的init程序,每个版本都适用于不同的嵌入式系统,从简单的BusyBox init,到System V init,再到目前最先进的方法systemd。
第14章 "从BusyBox runit开始 "告诉你如何使用Buildroot将你的系统分成独立的BusyBox runit服务,每个服务都有自己专门的进程监督和日志记录,就像systemd所提供的那样。
第15章 "电源管理 "考虑了各种调整Linux以降低功耗的方法,包括动态频率和电压调整,选择更深的空闲状态,以及系统挂起。其目的是使设备在电池充电的情况下能运行更长时间,同时也能运行得更冷。
第16章,打包Python,解释了将Python模块捆绑在一起进行部署有哪些选择,以及何时使用一种方法而不是另一种。它包括pip、虚拟环境、conda和Docker。
第17章,学习进程和线程,从应用程序员的角度来描述嵌入式系统。本章研究了进程和线程、进程间通信和调度策略。
第18章,管理内存,介绍了虚拟内存背后的思想,以及地址空间是如何被划分为内存映射的。它还描述了如何准确测量内存的使用,以及如何检测内存泄漏。
第19章,用GDB调试,告诉你如何使用GNU调试器GDB和调试代理gdbserver,来调试在目标设备上远程运行的应用程序。它接着展示了如何利用KGDB的内核调试存根,将这个模型扩展到调试内核代码。
第20章,剖析和跟踪,涵盖了测量系统性能的可用技术,从整个系统的剖析开始,然后归纳到特定的导致性能低下的特定区域。它还描述了如何使用Valgrind来检查一个应用程序使用线程同步和内存分配的正确性。
第21章,实时编程,提供了Linux上实时编程的详细指南,包括内核的配置和PREEMPT_RT实时内核补丁。内核跟踪工具Ftrace被用来测量内核延迟并显示各种内核配置的效果。
更好的利用本书
本书中使用的软件完全是开放源代码。几乎在所有情况下,我都使用了写作时的最新稳定版本。虽然我试图以一种不针对具体版本的方式来描述主要功能,但不可避免的是,一些例子需要调整以适用于后来的软件。
- 更多细节请参见Yocto项目快速构建指南中的兼容Linux发行版部分,网址是https://www.yoctoproject.org/docs/current/brief-yoctoprojectqs/brief-yoctoprojectqs.html。
嵌入式开发涉及两个系统:用于开发程序的主机和运行程序的目标系统。对于主机系统,我使用了Ubuntu 20.04 LTS,但大多数Linux发行版只需稍加修改就可以使用。你可以决定在虚拟机中作为客人运行Linux,但你应该知道,有些任务,例如使用Yocto项目构建一个发行版,要求相当高,最好在Linux的本地安装中运行。
我选择了三个示范性的目标:QEMU模拟器、BeagleBone Black和Raspberry Pi 4。使用QEMU意味着你可以尝试大部分的例子,而不需要投资任何额外的硬件。另一方面,如果你有真正的硬件,有些事情会做得更好,为此,我选择了BeagleBone Black,因为它不贵,可以广泛使用,而且它有非常好的社区支持。树莓派4因其内置Wi-Fi和蓝牙而被添加到第三版中。当然,你并不局限于这三个目标。本书的理念是为你提供问题的一般解决方案,这样你就可以将它们应用于广泛的目标板。
下载示例代码文件你可以从GitHub下载本书的示例代码文件,地址是https://github.com/PacktPublishing/Mastering-Embedded-Linux-Programming-Third-Edition。
关键词:
视点!掌握嵌入式Linux编程0简介
月度回望|“资产荒”逻辑未破 5月债市现券收益率曲线陡峭下移
当前头条:日本最大啤酒商要重返中国:你爱日啤、德啤还是国啤?
3999元起 华为Vision智慧屏3开售:720P秒变4K
刀塔循环圈单机地图 刀塔循环圈-天天即时看
React Native+小程序容器=更高的开发效率_焦点热门
全球热议:uniapp uni-number-box组件 步长为1,还能输入小数思路分享
Linux工作原理3设备 天天简讯
2023-05-31:给定一个整数数组 A,你可以从某一起始索引出发,跳跃一定次数 在你跳跃的过程中,第 1、3、5... 次跳跃称为奇数跳跃 而第 2、4、6
世界微动态丨货币市场日报:5月31日
“暖蜂驿站”温暖“两新”群体 相城区太平街道打造“15分钟暖蜂服务圈”-每日关注
首发2999元 联想百应新款迷你主机上架:13代i5、机身仅0.5L 全球快消息
满油满电续航1370公里 加速7秒内!吉利银河L7上市:13.87万起|世界观焦点
NVIDIA发布535.98驱动更新:大幅提升《暗黑破坏神4》帧数 每日快讯
当前观察:4799元开售!一图看懂努比亚Z50 Ultra摄影师版:玻璃“皮革”独一家
c#使用内存映射像处理内存一样去快速处理文件_全球热头条
重学c#系列——DiagnosticListener [三十五]|每日热门
市场监管总局:CCC认证制度实施以来,儿童玩具合格率显著提升 每日关注
从蔚小理到理小蔚 蔚来汽车做高端砸换电能否逆袭?|今日报
华为凌霄子母路由Q6E正式开售:电线变网线 全屋Wi-Fi满格
《小美人鱼》内地票房突破2000万!累计观影人次达54.7万 全球报道
摩尔线程显卡支持DX11游戏!国产第一家
针刺只是小儿科!吉利银河L7电池遭“蹂躏”:跌落水泡火烧撞击均无碍
天天热头条丨记录--Js基础练习题目
Apache DolphinScheduler 3.0.6 发布,或将是最后一个 3.0.X 版本|当前播报
债市日报:5月31日
航天宏图: 公司无人机业务:业务领域覆盖国土测绘、环保监测、河道监测、电力巡检、管道巡线、灾情监测等
或有剧毒!印度学生午餐中现20厘米死蛇:多人进餐后呕吐昏迷 环球要闻
风头盖过马斯克访华 贾跃亭新车220万开卖!FF 91最全解析 世界速递
全球今日讯!新型太阳能电池问世:柔韧性极高 弯曲角度可超360度
中兴晴天墙面路由器上手:新一代WiFi 6穿墙神器
明星餐饮为何逃不出短命魔咒?专家解释原因 全球速读
深圳电网用电负荷连续第三年突破2000万千瓦 当前热点
1499元起 OPPO K11x今晚开售:1亿像素+67W快充
全球今亮点!618最值得买的数码好物!华为家庭存储七大核心优势:比NAS好用多了
四川南充暴雨 下水道喷出1米高水柱!网友:趵突泉南充分泉
预售18:00截止!B站大会员年卡仅需88元
世界热议:手机PC秒变4TB硬盘空间!华为家庭存储图赏
理论+实操|一文掌握 RFM 模型在客户数据洞察平台内的落地实战|焦点速讯
热讯:TSN流量记录器:验证汽车网络中的以太网聚合,经济高效的解决方案
MySQL之常用数据类型
Spring MVC官方文档学习笔记(二)之DispatcherServlet
Python海龟有了新技能,这回画了个印度美女。它正在一丝不苟地给它画像,Python洪水填充fill命令用法。-微动态
天天报道:杀疯了!比亚迪新款元Pro上市:9.58万起 比预售价低4000
【环球速看料】海外版“坦克300”即将国产? 福特烈马国内路试谍照曝光!
台湾大王具足虫拉面341元一碗 学者:海蟑螂远亲 可能会中毒
日本赛马撞线后猝死:前骑手嘲讽哀悼网友“伪君子”引争议
今日要闻!苹果618大跌:iPhone 12/256GB 3499元、iPhone 14 4999元
仙佑医药科技有限公司怎么样? 仙佑集团口碑为什么这么好?
视觉盛宴:探索可视化大屏的无限魅力 世界独家
1.动态数组
TMC2160步进电机驱动芯片
简易视频直播系统的搭建实践
TF无法识别问题分析_环球观速讯
【环球聚看点】数据真空期机构情绪持稳 日债收益率多数小幅回落
世界滚动:收评:五月收官!创业板指跌超1% 英伟达概念股活跃
全球观焦点:2099元!尼康尼克尔Z DX 24mm f/1.7正式发布:夜拍画质绝
最新快讯!新掌机或将用上:高通与索尼、任天堂磋商掌机芯片
vivo S17系列发布:拍人像最好的手机 2499元起
微速讯:269元 vivo TWS Air Pro耳机发布:3D全景音频、续航长达30小时
前置5000万广角柔光!vivo S17 Pro图赏
绍兴二手车交易市场1万2万_绍兴二手车交易市场
别再满屏找日志了!推荐一款 IDEA 日志管理插件,看日志轻松多了!
docker安装redis-世界快讯
天天即时:方萍萍:黄金短期应该是要调整一下
华为最贵笔记本!MateBook X Pro微绒典藏版开卖:13999元
AI可能灭绝人类!ChatGPT之父发出警告:三巨头AI公司CEO力挺-全球快看点
【播资讯】九年造一车!贾跃亭感谢李想支持:期待来FF洛杉矶总部交流指导
两年前魅族18系列“宝刀未老”!获Flyme 10首个稳定版全量推送
女子酒驾后谎称喝了藿香正气水 结果被一招识破 环球动态
人物传记《当今奇人周兴和》七十二 春风得意马蹄急 新视野
每日资讯:基于 Web 实现 m3u8 视频播放的简单应用示例
【经验分享】锐捷EVE在火狐游览器中,取消一律打开此应用的选项,重新选择默认打开应用,如SecureCRT-动态焦点
当前讯息:淘宝太细了:mysql 和 es 的5个一致性方案,你知道吗?
世界热点!2022 Kube-OVN开源社区年度报告
天天视讯!可配置Modbus网关 嵌入式设备联网解决方案
从三岁到八十二岁的武则天(转载)---王晓磊著 之简介|每日视讯
现场视频可怕!四川一特斯拉撞飞路人致身亡:被撞者腾空而起-热门
6月1日开市!大观园早市回来啦
全球视讯!69㎡三房,72㎡四房,广州的户型都卷成这样了?
可视化探索开源项目的 contributor 关系 环球最新
蛋白质纳米“计算机”问世:未来有望治疗癌症
贾跃亭造车梦成 李想:理想很多优秀负责人都来自法拉第未来 当前信息
快看:高颜值更有强悍性能 超频可解锁200W!影驰RTX 4060 Ti星曜OC显卡评测
砸手里了!推特估值大减:只剩马斯克收购价三分之一
马斯克高调收购“看走眼”?Twitter最新估值大跌近70%_世界时快讯
火狐也将放弃旧平台:Firefox 115将是支持Win7/8.1最后版本
环球新动态:MySQL之DDL表创建及DML数据处理操作
今日视点:直播软件源码,审核的“中坚力量”鉴黄功能!
环球快消息!福星股份董秘回复:截止5月29日公司股东人数约为5.48万
仓网升级,链通全国 顺丰供应链为小米打造原料央仓
性能超苹果A17 天玑9300卷出新高度:4个X4超大核详细规格出炉
【新视野】捷克一女婴出生2天就被母亲打耳洞 妈妈:应该是不疼的
微星发布全新Z790系主板:首次支持Wi-Fi 7 及5千兆网卡 世界热消息
又稳又圆 比亚迪仰望U8原地掉头为何这么慢?比快更难实现!
肯德基麦当劳儿童节玩具断货:黄牛线上倒卖 焦点热门
猛打价格战,手术机器人市场要变天了
柏子滋心丸怎么样
稳增长政策接续发力预期升温 每日快讯
国内新一轮油价调整6月13日开启!大概率还是上涨