最新文章
从HelloWorld说程序运行机制
学习任何一门编程语言时,我们通常会从编写 “hello world” 程序开始。对于一门我们之前从未接触过的语言,我们也可以在很短的时间内用这门语言编写出 “hello world”。然而,对于这个简单的程序内部的运行机制,相信有很多人仍然不太清楚。
单片机裸机临界区保护的几种方法!
对于已经接触过实时操作系统(RTOS)的嵌入式开发者来说,他们应该非常熟悉 OS_ENTER_CRITICAL() 和 OS_EXIT_CRITICAL() 这两个功能代码,在RTOS中,常常需要处理多个任务(进程),在某些情况下,一些特殊操作(例如在XIP下进行Flash擦除,切换到低功耗模式)不能被随意中断
C 程序中10个与内存有关的常见错误
与内存相关的错误是最令人恐惧的错误之一,它们通常在距离错误源一段距离之后才显露出来。当将错误的数据写入错误的位置时,你的程序可能会在最终失败之前运行一段时间。
如何学习一个嵌入式系统?
这篇文档是我在网上看到的,作者的目标是设计一个简单的嵌入式操作系统,仅实现基本的任务调度器功能。正如作者所言,虽然不能被称为完整的操作系统,但它展示了小型嵌入式操作系统的精髓。对于我们来说,这是一份很好的学习资料,可以从中了解操作系统的基本原理。今天我将这篇文档分享给大家。
嵌入式C语言程序调试宏使用技巧!
在Linux中使用gcc编译程序时,对于调试目的的语句有一些特殊的语法。编译器在进行编译过程中会生成一些宏,我们可以利用这些宏来打印当前源文件的相关信息,主要包括当前文件名、当前运行的函数和当前程序行号。这些宏可以在调试过程中提供有用的信息。
一种串口命令控制台的实现!
对于那些曾经体验过Linux强大串口Shell命令控制台的朋友们来说,是否非常羡慕它的功能?如果我们的低端MCU,比如STM32F系列,也能拥有这样的交互能力,将会大大简化调试、维护和配置的繁琐工作。
嵌入式BootLoader与APP固件如何合并?
嵌入式固件通常分为BootLoader和App两个部分。BootLoader主要用于启动校验、App升级、App版本回滚等功能,它在CPU上电的第一阶段中运行,并在完成相关任务后跳转至App地址执行应用程序。