Project Icon

modern-embedded-programming-course

现代嵌入式编程课程:全面掌握ARM Cortex-M架构

本课程详细介绍了从基础到现代的嵌入式编程实践,采用独特的硬件层次深入讲解方法,涵盖了二进制表示、变量和指针、位操作、函数调用、RTOS、面向对象编程、状态机等关键概念,特别关注ARM Cortex-M架构。课程由经验丰富的嵌入式软件专家Miro Samek教授讲授,适合有志于掌握嵌入式系统的开发者。建议具备一定的C语言基础和硬件设备,如TivaC LaunchPad或STM32 NUCLEO。

由以下提供:

Quantum Leaps


现代嵌入式系统编程课程

欢迎来到"现代嵌入式系统编程"视频课程

在这门课程中,你将学习如何以现代方式编程嵌入式微控制器,从基础知识一直到当代嵌入式编程实践。

这门课程的独特方法是经常深入到机器级别,向你展示嵌入式微控制器内部发生的确切情况。这种更深的理解将使你能够更有效地应用这些概念,并且更加自信。

如果你正在寻找一个实用的、动手的、结构良好的、深入解释嵌入式编程基本概念的课程,那么这门免费的课程非常适合你。

相关性

课程从2013年已经开始了,所以有个合理的问题是:"它还 relevant 吗?" 答案是肯定的,甚至可能比2013年还要 relevant,有两个主要原因:

基本概念

这门课程专注于嵌入式编程中的基本和根本概念,这些概念永不过时。所有介绍的概念都有深入的讲解,包括:

  • 二进制表示(补码)、十六进制表示
  • 控制流、状态寄存器、分支指令
  • 变量、数组和指针
  • 与外部世界的接口(GPIO)
  • C语言中的位操作
  • 函数、调用堆栈、递归、ARM过程调用标准
  • 标准整数(stdint.h)和整数类型混合
  • C语言中的结构和CMSIS
  • 启动代码,向量表
  • 嵌入式软件构建过程(链接过程)
  • 中断和竞争条件
  • "superloop"架构
  • RTOS(实时操作系统)
  • 面向对象编程(包括C语言中的OOP)
  • 事件驱动编程
  • 活动对象
  • 状态机,包括现代层次化状态机
  • 自动代码生成
  • 软件跟踪
  • 断言和契约设计

ARM Cortex-M架构

这门课程专注于流行的ARM Cortex-M架构,在过去的十年中,它在嵌入式MCU市场上已无可争议地占据主导地位。熟悉ARM Cortex-M是雇主最看重的技能。


ARM处理器,包括Cortex-M系列

讲师

这门课程由Miro Samek设计和教授——他是一位拥有超过30年经验的嵌入式软件专家。Miro喜欢教学,这个视频课程他的书籍文章会议演讲帮助了许多开发人员提高他们的技能,通过严苛的工作面试,并获得嵌入式编程职位。


Miro Samek

前提条件

课程从基础知识开始,但这一部分是简短而专注于嵌入式编程的C语言方面。因此,你可能需要补充一下一般的C编程语言学习。你可能还需要稍微了解一下CPU的工作原理。

此外,这门课程是实践性的,为了最大程度地从课程中受益,你可以并且应该跟随课程运行讨论的项目,为此,你将需要一些硬件(嵌入式板)和软件(嵌入式开发工具集)。

注意
一些早期的课程使用仿真器,因此你不需要立即使用嵌入式板。较高级的课程,当你与MCU外设(如GPIO等)交互时,需要使用嵌入式板。

硬件

课程中使用的主要嵌入式板是 TivaC LaunchPad 板(又称EK-TM4C123GXL),基于德州仪器的 ARM Cortex-M4F 微控制器。该板价廉并且依然可以买到,它是一个自包含的设备,提供了内置的硬件调试器/编程器(Stellaris ICDI),可以实现单步调试和检查内部状态。


TivaC LaunchPad (EK-TM4C123GXL)

课程下载现在也包含**ARM Cortex-M0+**微型控制器的STM32 NUCLEO-C031C6项目版本。该板同样价廉,自包含,并且内置了一个更为多功能的硬件调试器(ST-Link),可以实现单步调试和检查内部状态。


STM32 NUCLEO-C031C6

注意
未来将添加其他价廉嵌入式板的课程项目。

软件

为了构建和运行课程中介绍的代码,你需要以下嵌入式工具集之一:

IAR EWARM

课程开始时使用IAR Embedded Workbench for ARM (EWARM),它在课程1-19中使用。IAR EWARM是一个专业的工具集,拥有良好的编译器和稳定的调试器。


IAR EWARM 的一个项目

注意
IAR EWARM 曾经提供免费、尺寸有限的 KickStart 许可证,但最近,IAR Systems 停止提供免费许可证。唯一剩下的免费选项是 2 周的评估许可证。IAR EWARM 的项目已更新到较新版本的工具集,并提供给第1-19课。

KEIL MDK

KEIL MDK(微控制器开发套件)是本视频课程中使用的另一个专业开发工具集。与 IAR EWARM 相比,KEIL MDK 提供了更宽松的许可,包括免费的 Keil MDK v6 社区版


KEIL uVision IDE 的一个项目

注意
KEIL MDK 项目现在适用于本课程的所有课程。这包括原本为 IAR EWARM 或 TI CCS 提供的第 1-21 课。

TI CCS

由于广受欢迎,课程的两个课时(第 19 和 20 课)展示了德州仪器的 Code Composer Studio (CCS) IDE。这里唯一有价值的方面是使用开源的 GNU-ARM 编译器和链接器。

注意
Code Composer Studio (CCS) 11 默认使用 TI 编译器,不再附带 GNU-ARM 编译器。但可以通过菜单安装 GNU-ARM 工具链:"帮助 | 安装 GCC ARM 编译器工具..."


基于 Eclipse 的 Code Composer Studio IDE 的一个项目

CCS IDE 基于 Eclipse,因此启动和使用起来非常慢。Eclipse 项目难以共享,因为它们由多个文件和目录组成。此外,项目不能简单地在 IDE 中打开,而需要 "导入"。生成的错误消息通常让人困惑。最后,调试过程缓慢且不稳定。

课程项目

本存储库提供了可以在特定嵌入式工具集中打开并在家用电脑上运行的项目下载。项目按以下注明的目录树组织:

modern-embedded-programming-course/
+---lesson-01/               // 课程序号
|   +---simulator-iar/       // 使用 IAR EWARM 的模拟器
|   |        workspace.eww   // IAR 工作区
|   |
|   \---simulator-keil/      // 使用 KEIL MDK 的模拟器
|        \---RTE/            // KEIL MDK 的运行时环境
|            lesson.uvprojx  // uVision 项目
|
+---lesson-.../
|
+---lesson-04/
|   +---stm32c031-keil/      // 使用 KEIL-MDK 的 STM32C031 板
|   |   \---RTE/             // KEIL MDK 的运行时环境
|   +---tm4c123-iar/         // 使用 IAR EWARM 的 TM4C123 板
|   |        workspace.eww   // IAR 工作区
|   |
|   \---tm4c123-keil/        // 使用 KEIL MDK 的 TM4C123 板
|        \---RTE/            // KEIL MDK 的运行时环境
|            lesson.uvprojx  // uVision 项目
|
+---lesson-...
|
+---lesson-19
|   \---tm4c123-ccs          // 使用 CCS 的 TM4C123 板
|        +---ek-tm4c123gxl/  // 板卡专用代码
|        \---targetConfigs/  // CCS 项目目录
|            .ccsproject     // CCS 项目文件
|            .csproject      // Eclipse 项目文件
|            .project        // Eclipse 项目文件

更新

ARM/KEIL uVision 的所有项目均已从过时的 Compiler-5 更新为较新的 Compiler-6。

评论/讨论

如果您想讨论本课程或相关主题,请在 YouTube 上相应视频课时的评论区发布您的问题或评论。

其他课程资源

通过以下配套网页,可以找到本视频课程的众多资源:

www.state-machine.com/video-course

其中包括:

如何帮助此项目?

如果您喜欢这个项目,请:

  • 传播您喜欢的视频(例如,通过在其他嵌入式工程师常去的网站上发布)

  • 给此 GitHub 存储库加星(在您的浏览器窗口右上角):

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号