这次推荐一款轻量级的嵌入式任务调度器,目前已经有1.4K的star,这个项目比较轻量化,只有 5 个源文件,可以作为学习的一个开源项目。
在嵌入式产品开发中,难以避免地会因为各种原因导致最后出货的产品存在各种各样的 BUG,通常会给产品进行固件升级来解决问题。
C 语言是一种面向过程的语言,做嵌入式项目的时候,如果不变相面向对象,项目到后期很难做好,且不容易维护。
GREP 是一个强大的文本搜索工具,用于在给定的输入文件中查找与一个或多个模式匹配的行。它支持正则表达式,使得搜索更加灵活和强大。例如,grep 'pattern' filename 会在 filename 中查找包含 pattern 的所有行。
在一个项目中:每个模块之间相联系越紧密,则耦合性越高;这样你改动其中一个模块,其他模块也需要一起改动,换言之:牵一发而动全身。
编程的时候,了解业务的逻辑很重要,其实,我们掌握编程的用法也很重要。有时候,可能不熟悉某个关键字,而使用另外的方法来“替代”,这样不但会让代码执行效率变低,更让你的代码可读性、移植性也变低。
嵌入式设备被抄袭已是一种普遍现象,特别是在国内,在没有形成技术壁垒之前,如何防止产品被抄袭是一个不可回避的问题。
最近一个工程师问我 MCU 的最高翻转速度能够到多少?这个话题我多年前就听过,不过一直没有实际去测试过,这次正好借此问题实际测试了一番,发现里面还藏了不少的知识。
但随着 AIOT 时代的到来,局面组件改变。芯片的性能资源逐渐提升,业务逻辑也逐渐变得复杂,相对于代码的效率而言,代码的复用可移植性要求越来越高,以获得更短的项目周期 和更高的可维护性。
单片机开发过程中通常会用到“消息队列”,一般实现的方法有多种。本文给大家分享一下队列实现的原理和机制。
GPIO 可以说是 MCU 上最简单最常用的外设模块了,当一些原生功能外设接口模块不能满足项目设计要求时,我们常常会考虑使用 GPIO 来软件模拟实现相应功能,这时候 GPIO 本身性能就显得至关重要了。
状态机在嵌入式软件中随处可见,可能你会说状态机有什么难的,不就是 switch 吗?switch 仅仅是最基础的一个点,关于状态机的更多操作,或许你都没有见过,下面分享几种实现方法。状态机基本术语现态:是指当前所处的状态。条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移。动作:条件...
随着物联网的快速发展,物联网的终端设备也越来越多,而终端设备中很多产品都是基于MCU进行开发。很多场景下我们没办法布线,对这些终端设备功耗控制就比较重要。
Android 手机音频经过多年累积持续迭代,日趋完善,系统趋于稳定。但随着应用的丰富,场景的多样性,以及生态的碎片化,当前的音频架构,依然存在种种缺陷,包括历史遗留包袱。最具代表性的,诸如复杂的音量调节控制,复杂的通话路由策略,特别是蓝牙音频路由,带来的三方应用兼容性问题,始终是 Android 系统的核心痛点...
针对大量log日志快速定位错误地方动态查看日志tail -f catalina.ou 从头打开日志文件cat catalina.ou 可以使用 >nanjiangtest.txt 输出某个新日志去查看[root@yesky logs]# cat -n catalina.out |grep 717892466 >nanjiangtest.txttail/head简单命令使用: {代码...} 第一种方式(根据关键字查找出行号):用grep...
嵌入式开发都离不开调试工具,而市面上调试的工具有很多,但从兼容性和通用性来说,GDB 绝对占据领先优势。
操作系统和普通的大型应用程序项目类似,都涉及代码组织方式的问题,但操作系统的独特之处在于其核心部分必须运行在内核态,kernel model,所谓内核态严格讲是指在该状态下程序拥有对硬件(hardware)的所有控制权,运行在用户态的程序做不到这一点。
作为程序开发者,避免不了阅读别人代码,那么就会涉及到到一门语言的编程规范。规范虽然不是语言本身的硬性要求,但是已经是每一个语言使用者约定俗成的一个规范。
J-Link 是嵌入式软件、硬件工程师最常用的工具之一,但是,在使用这个工具时,也会遇到各种各样的问题。
物联网 (IoT) 不只是新技术,还是与旧技术的集成,其关键在于通信。可用的通信方法各不相同,但是,各种不同的协议在将海量 “事物” 连接到互联网时发挥着重要的作用。