入门必看 从菜鸟到大牛 嵌入式系统完整学习路线 看这篇就够了 华清元宇宙实验中心 博客园

Emily Johnson
-
入门必看 从菜鸟到大牛 嵌入式系统完整学习路线 看这篇就够了 华清元宇宙实验中心 博客园

了解 FreeRTOS 相关知识,并熟悉使用 STM32CubeMX 软件配置 FreeRTOS 工程的流程 读者须知:本系列教程中关于 FreeRTOS 的学习重点为应用,不会剖析源码内容,利用 STM32CubeMX 软件生成的 FreeRTOS 工程源代码中一般不会直接调用 FreeRTOS 的 API 函数,而是调用了 CMSIS-RTOS 封装好的上层API函数,但此系列教程主要介绍属于 FreeRTOS 的各类 API 函数及其应用,对于 CMSIS-RTOS 的 API 函数仅简单描述,读者需自行理解,另外对于常见硬件原理不再详细说明,感兴趣读者可阅读笔者的 “STM32CubeMX+STM32F4系列教程” FreeRTOS是一个完全免费且开源的嵌入式实时操作系统(Real-Time Operating System,简称RTOS) ,其一般将任务称为线程,以下列表为FreeRTOS的一些特点,笔者认为学习FreeRTOS的应用正是掌握和理解下列各个特性 RTOS主要应用于对实时性有要求的嵌入式系统,所谓实时性就是任务完成的时间是确定的,实时性又分为软实时和硬实时 软实时指任务完成时间是确定的,但是如果任务超时了也不会对整个系统产生破坏性影响;硬实时是指任务完成时间是确定的,但是如果任务超时未完成则会对整个系统产生灾难性影响,基于FreeRTOS开发的系统可以完成硬实时的要求 嵌入式系统不只是ARM+Linux,不是只有安卓,凡是电子产品都可称为嵌入式系统。物联网行业的兴起,也提升了FreeRTOS市场占有率。本文就是介绍FreeRTOS基础及其应用,只是个人整理,可能存在问题,其目的只是简要介绍系统的基础,只能作为入门资料。

进入嵌入式这个领域,入门首先接触的是单片机编程,尤其是C51 单片机来,基础的单片机编程通常都是指裸机编程,即不加入任何 RTOS(Real Time Operating System 实时操作系统)。常用的有国外的FreeRTOS、μC/OS、RTX 和国内的 RT-thread、Huawei LiteOS 和 AliOS-Things 等,其中开源且免费的 FreeRTOS 的市场占有率较高。 在裸机系统中,所有的操作都是在一个无限的大循环里面实现,支持中断检测。外部中断紧急事件在中断里面标记或者响应,中断服务称为前台,main 函数里面的while(1)无限循环称为后台,按顺序处理业务功能,以及中断标记的可执行的事件。小型的电子产品用的都是裸机系统,而且也能够满足需求。 多任务系统的事件响应也是在中断中完成的,但是事件的处理是在任务中完成的。如果事件对应的任务的优先级足够高,中断对应的事件会立刻执行。相比前后台系统,多任务系统的实时性又被提高了。 在多任务系统中,根据程序的功能,把这个程序主体分割成一个个独立的,无限循环且不能返回的子程序,称之为任务。每个任务都是独立的,互不干扰的,且具备自身的优先级,它由操作系统调度管理。加入操作系统后,开发人员不需要关注每个功能模块之间的冲突,重心放在子程序的实现。缺点是整个系统随之带来的额外RAM开销,但对目前的单片机的来影响不大。 目标:C 语言是嵌入式开发的基石,我们要熟练掌握其语法、指针、内存管理、结构体、文件操作等知识。 比如,在嵌入式系统中,指针常用于直接操作硬件寄存器,内存管理则关乎系统的稳定性。

学习资源:《C Primer Plus》以清晰的讲解和丰富的示例著称,是 C 语言入门的经典书籍;《C 和指针》则深入剖析指针这一 C 语言的难点,帮助你理解其精髓。B 站 “翁恺 C 语言” 系列课程,以生动有趣的方式讲解 C 语言知识,很适合初学者。 实践:完成课后习题能巩固理论知识,而实现小项目能让你将知识运用到实际中。例如,编写一个简单的计算器程序,能锻炼基本的语法运用和逻辑思维; 在实践过程中,要重点理解指针、内存布局(栈 / 堆 / 全局变量)、调试技巧,比如利用 GDB 调试工具找出程序中的错误。 有没有一本从电路开始讲然后汇编再到C语言的书? - 干田的回答 - 知乎 https://www.zhihu.com/question/469693594/answer/1975747012 有没有一本从电路开始讲然后汇编再到C语言的书? - 小熊的回答 - 知乎 https://www.zhihu.com/question/469693594/answer/1979127112 在有限的教学课程里,是要用一个复杂的,带有非常多外设的SoC?还是一个简单的Core?个人觉得51比STM32还是适合一点,聚焦一点。当然,这个时代,可能有更好的选择,例如只有核心的ARM Cortex-M,RISC-V,并用这个core搭建最小系统、编译器、Boot Strap、OS,把整个工具链建立起来。清华的"三周造个CPU"课程和中科院包云刚教授"一生一芯"计划,都是很好的案例,赞。 如何从零写一个http server?

- justjavac的回答 - 知乎 https://www.zhihu.com/question/27896945/answer/38565523 感谢老师提供的优质视频和讲解思路!!!​ 手写http服务器 【纯手写Http服务器-V哥主讲-哔哩哔哩】https://b23.tv/ARvU46 我先跟着老师的敲了一遍,然后融入自己的想法,模仿着servlet的使用方式进行了稍微的封装。提供后面的小伙伴参考一下。码云:https://gitee.com/Luo_Jing98358/web-server http://kmaebashi.com/programmer/devlang/book/index.html 《自制编程语言》

People Also Search

了解 FreeRTOS 相关知识,并熟悉使用 STM32CubeMX 软件配置 FreeRTOS 工程的流程 读者须知:本系列教程中关于 FreeRTOS 的学习重点为应用,不会剖析源码内容,利用

了解 FreeRTOS 相关知识,并熟悉使用 STM32CubeMX 软件配置 FreeRTOS 工程的流程 读者须知:本系列教程中关于 FreeRTOS 的学习重点为应用,不会剖析源码内容,利用 STM32CubeMX 软件生成的 FreeRTOS 工程源代码中一般不会直接调用 FreeRTOS 的 API 函数,而是调用了 CMSIS-RTOS 封装好的上层API函数,但此系列教程主要介绍属于 FreeRTOS 的各类 API 函数及其应用,对于 CMSIS-RTOS 的 API 函数仅简单描述,读者需自行理解,另外对于常见硬件原理不再详细说明,感兴趣读者可阅读笔者的 “STM32CubeMX+STM32F4系列教程” FreeRTOS是一个完全免费且开源的嵌入式实时操作系统(Real-Time Operating System,简称RTOS) ,其一般将任务称为线程,以下列表为Fre...

进入嵌入式这个领域,入门首先接触的是单片机编程,尤其是C51 单片机来,基础的单片机编程通常都是指裸机编程,即不加入任何 RTOS(Real Time Operating System 实时操作系统)。常用的有国外的FreeRTOS、μC/OS、RTX 和国内的 RT-thread、Huawei LiteOS

进入嵌入式这个领域,入门首先接触的是单片机编程,尤其是C51 单片机来,基础的单片机编程通常都是指裸机编程,即不加入任何 RTOS(Real Time Operating System 实时操作系统)。常用的有国外的FreeRTOS、μC/OS、RTX 和国内的 RT-thread、Huawei LiteOS 和 AliOS-Things 等,其中开源且免费的 FreeRTOS 的市场占有率较高。 在裸机系统中,所有的操作都是在一个无限的大循环里面实现,支持中断检测。外部中断紧急事件在中断里面标记或者响应,中断服务称为前台,main 函数里面的while(1)无限循环称为后台,按顺序处理业务功能,以及中断标记的可执行的事件。小型的电子产品用的都是裸机系统,而且也能够满足需求。 多任务系统的事件响应也是在中断中完成的,但是事件的处理是在任务中完成的。如果事件对应的任务的优先级足够高,中断对应...

学习资源:《C Primer Plus》以清晰的讲解和丰富的示例著称,是 C 语言入门的经典书籍;《C 和指针》则深入剖析指针这一 C 语言的难点,帮助你理解其精髓。B 站 “翁恺

学习资源:《C Primer Plus》以清晰的讲解和丰富的示例著称,是 C 语言入门的经典书籍;《C 和指针》则深入剖析指针这一 C 语言的难点,帮助你理解其精髓。B 站 “翁恺 C 语言” 系列课程,以生动有趣的方式讲解 C 语言知识,很适合初学者。 实践:完成课后习题能巩固理论知识,而实现小项目能让你将知识运用到实际中。例如,编写一个简单的计算器程序,能锻炼基本的语法运用和逻辑思维; 在实践过程中,要重点理解指针、内存布局(栈 / 堆 / 全局变量)、调试技巧,比如利用 GDB 调试工具找出程序中的错误。 有没有一本从电路开始讲然后汇编再到C语言的书? - 干田的回答 - 知乎 https://www.zhihu.com/question/469693594/answer/1975747012 有没有一本从电路开始讲然后汇编再到C语言的书? - 小熊的回答 - 知乎 https://...

- Justjavac的回答 - 知乎 Https://www.zhihu.com/question/27896945/answer/38565523 感谢老师提供的优质视频和讲解思路!!!​ 手写http服务器 【纯手写Http服务器-V哥主讲-哔哩哔哩】https://b23.tv/ARvU46 我先跟着老师的敲了一遍,然后融入自己的想法,模仿着servlet的使用方式进行了稍微的封装。提供后面的小伙伴参考一下。码云:https://gitee.com/Luo_Jing98358/web-server Http://kmaebashi.com/programmer/devlang/book/index.html

- justjavac的回答 - 知乎 https://www.zhihu.com/question/27896945/answer/38565523 感谢老师提供的优质视频和讲解思路!!!​ 手写http服务器 【纯手写Http服务器-V哥主讲-哔哩哔哩】https://b23.tv/ARvU46 我先跟着老师的敲了一遍,然后融入自己的想法,模仿着servlet的使用方式进行了稍微的封装。提供后面的小伙伴参考一下。码云:https://gitee.com/Luo_Jing98358/web-server http://kmaebashi.com/programmer/devlang/book/index.html 《自制编程语言》