8.3k 9 分钟

在程序开发阶段,少不了 Debug 调试,除去编程架构搭建不稳定所造成的错误外,大部分会出现或多或少的故障异常,而这些异常有可能是粗心或者对编程了解不到位所导致的 ‘ 堆栈溢出 ’ 、‘ 数组下标越界 ’ 、‘ 数学运算异常 ’ 等等;而本篇则主要以常见的进入 Hardfault 中断来进行分析错误来源。 # ARM Cortex-M 核心 ARM 架构,过去称作高级精简指令集机器(英语:Advanced RISC Machine,更早称作艾康精简指令集机器,Acorn RISC Machine),是一个精简指令集(RISC)处理器架构家族,其广泛地使用在许多嵌入式系统设计。 而对于 ARM...
5.6k 6 分钟

# 奇偶校验 # 介绍 奇偶校验位(英语:parity bit)或校验比特(英语:check bit)是一个表示给定位数的二进制数中 1 的个数是奇数还是偶数的二进制数。奇偶校验位是最简单的错误检测码。 # 原理 奇偶校验常见于串口数据收发,如其名,可分为奇校验和偶校验: 奇校验:原始码流 + 校验位,其 “1” 的个数为奇数,则校验位为 “0”;若为偶数,则校验位为 “1”。 偶校验:原始码流 + 校验位,其 “1” 的个数为奇数,则校验位为 “1”;若为偶数,则校验位为 “0”。 奇校验是在每个字节后增加一个附加位,使得 “1”...
8.5k 9 分钟

继上一篇 cJSON 库 API 解析(上),本篇为下篇,以解析 JSON 数据包为主 # JSON 数据解析 在 cJSON 里,解析 JSON 数据包,其实就是通过搜寻对应的配对关键符号或者关键字,然后一个一个剥离成为链表节点 (键值对) 的过程。 其所支持的解析函数有以下几个: CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value); CJSON_PUBLIC(cJSON *) cJSON_ParseWithLength(const char *value, size_t...
7.9k 8 分钟

cJSON 项目可以说是一个很适合学习及应用 C 语言中的链表的项目,刨析它的源码,你会惊叹它设计之巧妙,其代码为之简洁;同时,在嵌入式应用场景中也经常发现它的身影。 本系列分为上下两篇,其中上篇以应用分析其 JSON 数据封装为主。 # 介绍 在认识 cJSON 之前,先来认识一下 JSON: JSON(JavaScript Object Notation,JavaScript 对象表示法,读作 /ˈdʒeɪsən/)是一种由道格拉斯・克罗克福特构想和设计、轻量级的资料交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。JSON...
4.3k 4 分钟

好久没写硬件的笔记了,写这篇笔记是因为在网上或者在现有的书上查阅相关知识点的时候,发现大多数东西都是一略带过、不全面,而且内容讲的有点沉闷,容易让人呼呼入睡(ps:这里绝对没有瞧不起作者的意思哈,可能风格有点不适应),所以想着以后可能也会用到,还是自己总结一篇吧。 本篇主要分析半导体存储电路(其中包括时序图跟真值表),但由于涉及到逻辑门电路,所以就一并放在一起总结了。嘛,原本的标题是想写 “半导体存储电路分析” 的。。。 # 逻辑门电路 # 与、或、非 与门 特点:所有输入为高电平时(逻辑 1),才会有高电平(逻辑 1)输出;其中一个输入为低电平(逻辑 0)则出低电平(逻辑...