《 嵌入式系统设计与实践》一一3.3 处理器是一门语言

简介: 本节书摘来自华章出版社《 嵌入式系统设计与实践 》一 书中的第3章,第3. 3节,作者:Elecia White 著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看

3.3 处理器是一门语言
在试图了解一款处理器的时候,期望花上和学习一门新的编程语言一样的努力。同时,如同学习一门语言一样,如果我们已经有过类似的经历,那么学习一门新语言时就会简单很多。当学习了多门语言或者多款处理器后,学习新的就会变得越来越简单。
虽然这个比喻给出了一个需要学习消化的信息量的概念,但处理器本身确实非常像一个有奇特接口的软件库。与硬件交流,这么说并不恰当。应用软件实际上是与处理器软件交流,通过一种称为寄存器的特殊接口,我将在第四章详细讲述。寄存器就像编程语言中的关键字。一般情况下,开始学习的不多(if、else、while),过了一段时间后学习了更多的知识(enum、do、sizeof),最后就成为了专家(static、volatile、union)。
一款处理器的文档数量会随着其复杂度的增加而增加。我们要做的就是只学习那些能够帮助我们把事情做完的部分。面对如山洪般涌来的信息,需要决定哪些部分的文档是值得花费宝贵的时间和注意力的。值得一看的文档包括:
来自处理器供应商的用户手册(或者用户指南)
通常是一个大部头的资料。用户手册提供了我们需要知道的绝大部分的内容。读完绪论部分,就会大致了解处理器的性能。
注意: 为什么要从供应商那里获取用户手册?以NXP LPC1313处理器为例,这款处理器使用了一个ARM Cortex-M3核。如果你正在使用这款处理器,你不会想阅读ARM用户手册,因为ARM手册上88%的信息是多余的,10%的内容会出现在LPC13xx用户手册中,剩余的部分你可能永远都不需要。
一般说来,用户手册是为一个系列的处理器写的,因此如果需要使用LPC1313处理器,那么就需要获取一份LPC13xx用户手册,并寻找把不同的处理器区分开来的说明部分。在阅读了绪论之后,可能希望直接跳到那些要用在系统上的部分。每章在开始细节描述之前,都会有一个属于这一章的有用的绪论部分。
用户手册包含我们所需要的关于这个芯片的大部分信息,尽管它可能不会帮助我们建立一个可以运行的系统。
入门指南或者开发包用户手册
开发工具包(开发包)常常是使用一款新处理器的起点。使用开发包可以让我们有足够的信心去安装和配置编译器及调试器,在拿到自己的硬件之前(这提供了一个当硬件不工作时可以立即比较的对象)。开发包通常是该款处理器的销售工具,所以一般不会太贵,而且都有非常好的文档支持,帮助从零开始搭建系统。开发包推荐编译器、调试器,以及必要的硬件,甚至还指导如何连接线缆。开发包的文档是程序员的开发指南,因此即使没有购买开发包,其配套的文档也可以帮助我们对该款处理器的生态系统有个初步了解。
入门指南(幻灯片)
这份文档描述了对于电气工程师和软件工程师来说,如何开始使用该款处理器。尽管有趣而便于阅读,但这个幻灯片一般不会回答诸如如何使用该款处理器之类的问题。在评估某款处理器是否可以用在一个项目中时,这个文档是有帮助的。它还会讨论该款处理器是什么样的处理器以及通用的应用。它也会说明可以获取哪些开发包。
维基百科和论坛
虽然关于某款处理器的维基百科主页有可能不会有足够的信息帮助我们完成代码的开发,但是它可以给你一个高层次的概述(尽管通常用户手册的绪论部分会更有用)。维基百科的页面会包含指向这款处理器的论坛和社区的极有价值的链接,这里的论坛和社区可以搜索到可能碰到的一些问题以及看看别人的解决方法。
供应商可能也有专门用于介绍该款处理器的维基页面和论坛。这些为用户手册或者入门指南上的信息提供了另外一个有价值的角度。通常可以在这些地方容易地搜索到指向大量例子的链接。
供应商或分销商访问
参加这些活动,这些也许不会有太多可用的信息,但当寻找代码和支持时,这些链接以后可能有用。
处理器数据表
处理器的数据表大多专注电气部分。由于需要开发软件代码,所以需要更多的关于软件方面的信息。因此,对于处理器来说,可以跳过数据表而直接阅读用户手册(或用户指南)。
大多数处理器都带有许多例子,包括很多驱动程序代码。有时这是比较好的代码,有时不是。即使对于那些不是非常优秀的代码,开始的时候有一个例子总是不错的。虽然例子可以按照所描述的运行,但是相对于系统要求来说,它们可能都不足够健壮和高效。如果打算使用这些代码,那么这些代码就成为我们代码的一部分,因此请务必把它们理解透。
一但开始,搭建一个开发包并运行它,坐下来再把用户手册读一读,特别是那些包含了所使用的每个接口的章节(即使供应商给了我们所期望的例程代码)。在我们实现一个嵌入式系统的规格要求的过程中,我们期望从用户手册中得到许多细节(输入和输出、中断、看门狗和通信等)。现在,让我们回到我们将要逐步搭建的系统蓝图吧。

相关文章
|
1天前
|
云安全 安全 网络安全
|
1天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
1436 0
|
7天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
1204 24
|
3天前
|
存储 人工智能 自然语言处理
阿里云千问办公官网登录入口:qwenwork.cn网页版免下载,注册送2000积分、登录每日再送100积分
千问办公(QwenWork)是阿里巴巴推出的一站式AI办公平台,定位"不止于对话,更注重交付"。它基于千问大模型,具备任务拆解与多步骤自动执行能力,用户一句话即可完成PPT生成、数据分析、网页搭建、视频剪辑、信息调研等复杂任务,覆盖网页端、桌面端及钉钉生态。网页版免下载,访问qwenwork.cn注册即得2000积分,每日登录再送100积分。个人版免费起用,另有付费版与企业版可选。
|
12天前
|
存储 人工智能 安全
千问办公官网入口网页版登录:qwenwork.cn 注册送2000积分、登录送100积分
阿里云千问办公(QwenWork)是AI智能工作平台,支持一句话生成PPT、表格、网页、视频及数据分析。个人免费版送2000积分+每日登录赠100分,含1GB存储、5个发布页;企业版198元/席/月起。阿里千问办公QwenWork官网:https://t.aliyun.com/U/0VCTGt 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
|
7天前
|
人工智能 开发者
Qoder CN 大使计划正式开启|无限创造,等你一起
全年免费积分、优先内测、活动支持与更多共创机会,邀请用 Qoder 把想法变成现实的你。
598 6
|
8天前
|
安全 Linux 芯片
【万字长文】Ollama下载、安装、配置、使用保姆级教程(2026最新图解)
Ollama 是一款免费开源的本地大模型运行工具,支持 DeepSeek、Qwen 等主流模型,一条命令即可下载运行。2026 最新版 v0.35.1 官方安装包(1.47GB)已提供国内直连下载,纯本地、离线可用、无广告、无隐私泄露风险。
751 1
|
1月前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
10076 33
|
1天前
|
安全 应用服务中间件 Go
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
PHP2Shell 双 RCE 已遭在野利用:WordPress、Drupal 全在射程内,nginx 其实另有洞。拆成因与修复顺序
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
|
9天前
|
Web App开发 人工智能 JavaScript
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA
REA(Reverse Engineer Anything)是近期爆火的开源AI逆向工具,4月发布,1个月内斩获15万+ Star。它让AI Agent无需源码即可分析二进制、APK、JS/Electron、HAR包等17类目标,自动反编译、生成可运行代码,并强制返回带证据与局限的结论。全本地执行,MIT协议,支持Hopper/Ghidra/IDA等引擎,一行命令即可上手。
817 2
太猛了,一个月干到15W+,给大家推荐一个最近爆火的开源逆向工具:REA