自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (8)
  • 收藏
  • 关注

原创 C语言奇技淫巧

更多信息,请关注微信公众号: 嵌入式系统

2020-11-25 09:54:51 220

原创 编程艺术之Unix哲学

Unix 哲学不算是一种正规设计方法,它并不打算从计算机科学的理论高度来产生理论上完美的软件。那些毫无动力、松松垮垮而且薪水微薄的程序员们,能在短短期限内,如神灵附体般开发出稳定而新颖的软件——这只不过是经理人永远的梦呓罢了。

2024-01-14 16:15:54 771

原创 嵌入式软件命名常用英文集

嵌入式软件开发时变量、函数等命名,曾遇见单片机MCU翻译为singlechip,字母大小转换使用big/small;或使用LY表示录音;或使用analog_to_digital_converter全称表示ADC。功能运行正常就拒绝改进,这种现象正如吃饭发现了头发,影响心情但确实不致死;更有甚者使用字母l表示length长度,最后莫名其妙地写成了数字1导致严重问题。软件开发中的命名,尤其是约定俗成的词汇应该优先使用,本文整理了500个常用英文以便规范化。代码的可读性,首先从命名开始。

2024-01-12 10:13:28 987

原创 代码审查那些事

代码审查(code review)是指对源代码进行系统化地审查,是软件开发中的最佳实践之一,代码合并之前必须审查通过才行,可及时发现隐藏问题,提高代码质量。

2024-01-03 13:37:13 917

原创 嵌入式C编码规范

编码规范,没有最好,只有最合适,有但不执行不如没有。更多嵌入式信息请关注微信公众号【嵌入式系统】

2023-12-05 16:38:20 368

原创 嵌入式软件的低功耗设计

电子产品尤其是电池供电的都要求低功耗,究竟怎样才算低功耗?

2023-08-01 14:26:17 403

原创 嵌入式软件的设计模式

软件开发,难的不是编写软件,而是编写功能正常的软件。软件工程化才能保证软件质量和项目进度,而设计模式使代码开发真正工程化,设计模式是软件工程的基石。

2023-02-03 08:48:41 190 1

原创 高质量嵌入式软件的开发技巧

笑傲江湖》华山派的剑宗和气宗之争,可谓异常激烈。那么问题就来了,既然有剑宗气宗之争,到底应该先练剑,还是先练气呢?前面发布 很多理论方面的文章,诸如4篇这些都是具备一定基础再架构上的描述,类似于气宗性质,这些见效慢,但高质量的软件开发,也是存在见效快的套路,针对有一定嵌入式C语言开发基础的,剑宗之法进行描述,抛砖引玉。更多技能请搜索关注。

2023-02-01 08:12:03 375

原创 嵌入式算法19---国家商用密码SM算法

数据加密和解密所涉及到的算法大致可分为以下三大类:单向散列算法(杂凑算法),对称加密算法,公开密钥加密算法(非对称加密算法)。大部分算法出自国外,事实上我国国家密码管理局也发布了一系列国产商用密码算法,即SM系列,但是简称国密算法,命名上太过随意。国密算法包括 SM1、SM2、SM3 、SM4、SM7、SM9、ZUC(祖冲之加密算法),其中SM1 和 SM7 算法不公开,其余算法已成为 ISO/IEC 国际标准。......

2022-08-14 11:30:24 4658

原创 雷军:穿越人生低谷的感悟(节选)

雷军分享创办小米之前,人生中多次经历的挫折与迷茫,以及穿越低谷过程中的一些感悟。

2022-08-13 00:31:38 472

原创 嵌入式算法18---RSA非对称加密算法

RSA非对称加密算法的基础和源码

2022-07-28 23:43:15 3216 9

原创 嵌入式算法17---SHA256哈希算法

单向散列算法之SHA256分析

2022-07-26 23:49:14 1291

原创 嵌入式软件分层隔离的典范

引言:嵌入式软件开发分层、模块化是理想状态,实际开发中因各种限制而有所取舍,但这不妨碍学习参考优秀软件架构,即使有部分思想在项目中落实,也是大有裨益的。1、AUTOSAR的软件分层理论汽车电子与消费电子不同,其硬件、软件都更关注可靠性、安全性和长效性。其软件需要兼容不同供应商、在不同车型可复用,汽车电子行业的软件架构AUTOSAR(Automotive Open System Architecture)可以作为参考对象。因为不曾使用和系统学习,基于有限信息理解其软件分层思想,可能有所偏差。AUTOSA

2022-05-21 14:07:24 1595

原创 嵌入式代码bug从哪来,怎么去

软件从来不是一次就能完美的,需要以包容的眼光看待它的残缺。那问题究竟为何产生,如何去除呢?

2022-05-01 15:53:10 320 1

原创 动态内存管理及防御性编程

C语言的优势是可以直接访问内存地址,也就是指针操作,但其缺陷也是因为直接内存访问。如何通过防御性编程提前发现问题,尽可能减少内存异常产生的后果?

2022-04-26 15:26:20 820

原创 编码这件小事,我仍在努力

技术源于积累,成功来自执着

2022-04-15 21:54:22 327

原创 基于RTOS的软件开发理论

软件开发,大多数人依靠的是经验,缺乏理论,比如遇到问题知道怎样改可以修复问题,但不明白深层原因。有些阶段,选择高校的理论教程读读,比网红博主拼凑的技术总结,更能醍醐灌顶,提高水平。实践检验真理,但理论能指导实践。

2022-03-28 22:52:31 336 1

原创 嵌入式算法16-傅里叶变换算法

任何连续周期信号可以由一组适当的正弦曲线组合而成

2022-03-09 19:23:45 2728

原创 嵌入式算法15-KMP字符匹配算法

改进的字符串匹配算法–KMP算法

2022-01-20 19:36:01 538

原创 C关键字section的作用

section关键字的效果,以及在SDK实现开机自启动的应用

2022-01-18 10:17:14 4801 1

原创 C语言关键字技巧

嵌入式C开发关键字的应用技巧

2022-01-10 12:57:31 693 1

原创 嵌入式开发入门指引

关于嵌入式系统软件开发入门,发表个人感想

2021-12-23 00:16:28 3093

原创 物联网之室内定位

室内定位正处于百家争鸣、技术爆发的阶段,尤其近年随着UWB、Wi-Fi以及5G等通信技术的广泛应用。

2021-12-09 20:43:09 3273 1

原创 嵌入式算法14---数据流与环形队列

对生产-消费模型的数据处理,使用环形队列管理,提高内存利用率

2021-12-08 00:37:30 263

原创 嵌入式算法13---大数据变长存储算法

关键字:大数值存储 压缩 UTF8摘要:嵌入式系统中涉及数据采集的,对采样结果定义合理的数据类型存储,可以节省空间,虽然会牺牲部分时间。1、应用场景对于高精度采样结果,其数值最大可能需要3字节,最少1字节,采用标准C的基础数据类型,U16太小无法满足需求,U32则浪费内存,当样本量很大时,其占用的空间问题便突显出来。能否采用变长数据类型存储呢?对小数据采用U8,大数据采用U32,随着数值范围动态分配存储空间,就是本文的讨论的重点。2、数据去冗余U32的空间其数值范围最大接近2^32,该值非常大

2021-11-28 11:32:21 383

原创 雷军的程序人生路

优秀的程序员如何定义呢?首先必须热爱写程序,其次必须是一个完美主义者;只有这样的人,才能把事情做得极致。我的程序人生路(节选)雷军 1996年5月【题记】 如果程序人生的话,这条路太漫长我并非天生喜欢写程序,高中时也没有想过程序员的生活,上大学时选择了计算机系,开始步入程序人生的道路。当我学会一些后,发现自己特别喜欢写程序。我是八七年上的武汉大学计算机系,大一下学期才有专业课,当我有资格上机的时候,发现电脑世界太美妙,就一头扎进去。大二学PC,又过了一学期,开始出现在老师的实验室,帮忙干活。又过

2021-11-07 22:26:16 396

原创 嵌入式算法12---排序算法

关键字:冒泡排序、选择排序、插入排序、标准库函数qsort摘要:嵌入式系统中尤其涉及数据采集的,需要对数据进行简单处理后再进行业务功能,考虑到硬件的资源限制,对于数据排序,一般都只是应用这四种简单的排序算法。本文讲解不同算法进行从小到大的升序排列的过程。1、冒泡排序冒泡排序(bubble sort)是一种C语言入门级的简单排序算法,重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误进行交换。重复地检查对比直到没有相邻元素需要交换,也就是说该元素列已经排序完成。算法的名字由来是因为越小(大

2021-11-04 22:44:56 585

原创 中国移动oneos框架基础及其组件解析

oneOS框架基础及应用1. 为什么引入oneos2. Oneos平台3. Oneos系统4. Python开发5. 软件开发1、为什么引入oneos1.1 需求嵌入式软件开发是针对特定的硬件系统,不同芯片其硬件配置不同,代码一般难做到统一通用。早期功能简单,硬件方案更新周期长,因此一套SDK可以使用几年,软件框架很少变化。近期因物料短缺频繁更换芯片,对软件开发也提出了更高要求。硬件方案大幅变化,如何在新平台快速实现原有业务逻辑,整机对外功能一致?如何保证一套代码可以较为容易实现跨平台移植

2021-10-17 10:27:23 5115 1

原创 标准C文件操作模式

文件操作

2021-09-27 09:39:20 70

原创 嵌入式算法11---矩阵转置与压缩

在整个物联网系统中,嵌入式设备作为数据采集、过滤、缓存、传输的节点,前面系列文章分别介绍了嵌入式设备相关的各种数据过滤、校验和压缩存储算法。缓存和传输阶段,考虑到嵌入式设备的存储空间和传输带宽限制,数据包的压缩还可进一步优化。以嵌入式终端环境数据采集为例,以10秒间隔采样温度、湿度、气压、风速、四项环境数据,正常情况下,数据在短时间内都是小幅波动或者维持不变。假如采集结果(瞎编的,表意为主)如下表:时间戳温度湿度气压风速102775983202775983

2021-07-21 14:24:02 405

原创 嵌入式算法10---行程编码

1、游程编码嵌入式设备采集的数据,一般情况下变化比较平缓,长时间因此常常需要对数据进行压缩编码存储,等到要用到这个数据的时候再解压缩就行,这样不仅可以节约大量的存储空间,而且节省了系统读取和反应的时间。栅格数据压缩编码的方法有很多种,包括链式编码、行程编码、块式编码和四叉树编码。今天我们就来讲一下行程编码(也叫游程编码)。#include “stdio.h”#include “string.h”//这个配置成数据源中出现概率最小的数#define FLAG_ENCODE_HEAD 0x4vo

2021-07-19 19:11:35 1023

原创 物联网之卫星导航系统

1、全球导航卫星系统全球导航卫星系统(GNSS:Global Navigation Satellite System),泛指所有的卫星导航系统,包括美国的GPS、俄罗斯的Glonass、欧洲的Galileo、中国的北斗卫星导航系统,以及相关的增强系统,如美国的WAAS(广域增强系统)、欧洲的EGNOS(欧洲静地导航重叠系统)和日本的MSAS(多功能运输卫星增强系统)等。全球导航卫星系统能在地球表面或近地空间的任何地点为用户提供全天候的3维坐标和速度以及时间信息的空基无线电导航定位系统。通俗解释是可以基于这

2021-07-18 00:21:47 2580 1

原创 设备OTA空中升级原理

1. 背景没有完美的软件,因为设计缺陷、业务需求更新,软件始终都在不断升级完善。新软件如何替换正在运行的旧软件就是本文关注的重点,尤其是针对电子产品,设备空中升级OTA,受限于硬件资源,需要选择不同的方案进行软件升级。2. 空中升级流程在线升级流程,简化就是设备运行旧软件的同时,获取新软件包,再执行特殊操作使用新软件覆盖旧软件,最后运行新软件。根据硬件资源和系统整体框架,选择不同的升级方案。3. 空中升级的方案3.1. 整包升级以STM8单片机升级为例,单片机最小系统运行流程如下:要加入在线

2021-04-23 23:20:27 1584

原创 物联网之蓝牙初识

1、蓝牙 BLE 技术简介1.1、 蓝牙技术的起源蓝牙的创始人是瑞典爱立信公司,爱立信早在 1994 年就已进行研发。1997 年爱立信与其他设备生产商联系,并激发了他们对该项技术的浓厚兴趣。1998 年 2 月,5 个跨国大公司,包括爱立信、诺基亚、IBM、东芝及 Intel 组成了一个特殊兴趣小组(SIG),他们共同的目标是建立一个全球性的小范围无线通信技术,即现在的蓝牙。蓝牙技术是以 10 世纪的一位丹麦国王命名的。“蓝牙(Bluetooth)”一词来源于 10 世纪的丹麦国王 Harald B

2021-03-25 18:53:39 909 1

原创 Git版本控制工具使用说明和规范

windows环境下的Git版本控制工具使用说明和规范。目录1 Git的安装与使用2 Git的使用规范3 工欲善其事必先利其器1、Git的安装与使用1.1 前言Git 是Linux 开源社区为Linux的开发与维护而开发的一个项目,目前已被广泛应用,关于版本控制工具各有特点,本部门全部使用git,软件开发前必须熟练掌握git的使用,以及遵守相应操作规范。1.2 安装初次接触Git的用户,请抽出几分钟时间看一下https://git-scm.com/docs 的介绍文档,相信磨刀不误砍柴

2021-02-24 18:54:25 291

原创 物联网之移动通讯

摘要移动通信的发展历程以及物联网的展望一、移动通信的发展史从人类社会诞生以来,更加高效快捷的通讯就成为人类矢志不渝的追求。中国古代有飞鸽传书、烽火狼烟方式传递信息,这些传递信息的方式存在一定局限性。1844年,美国人莫尔斯发明了莫尔斯电码,并在电报机上传递了第一条电报,开创了人类使用“电”来传递信息的先河。1864年麦克斯韦从理论上证明了电磁波的存在,1876年赫兹用实验证实了电磁波的存在,1896年意大利人马可尼第一次用电磁波进行了长距离通讯实验,从此世界进入了无线电通信的新时代,即移动通讯。现代

2021-01-18 10:57:18 1245

原创 mbedtls基础及其应用

摘要SSL/TLS加密的介绍,重点是mbedtls的基础说明以及移植应用。1、引言1.1 为什么要加密互联网是开放环境,通信双方都是未知身份,为通信双方的有效信息不被第三方窃听、篡改或者被冒充身份进行通信,需要为信息加上保护措施。也就是对所有信息都进行加密,避免被第三方窃听;采用校验机制,可以识别出信息是否被篡改,配备身份认证防止被冒充身份。互联网的通信安全,就是建立在SSL/TLS协议之上。1.2 SSL/TLS协议的历史1996年,在前面的基础上,SSL 3.0版问世并得到大规模应用;19

2020-12-18 18:20:44 5429

原创 代码的保养

不只人要保养,代码也是如此。面向对象编程,就是把面对的代码当作对象一样,定期对其进行保养。目录一、美颜 astyle二、祛痘 cppcheck三、返老还童 git工欲善其事必先利其器一、美颜 astyle都说秀色可餐,同样的角色,都是小龙女,但是效果不一样。实现同样的功能,有的代码一目了然,命名规范,排版层次分明,写的代码诗一样赏心悦目;有的像SHI一样,尽管功能正常,看的头疼。如下面的代码,虽然可编译运行,但看起来什么感觉?//C语言混乱大赛作品#include <st.

2020-11-22 16:07:34 929

原创 FreeRTOS基础及其应用 (入门简化版)

FreeRTOS基础及其应用本文只是个人整理,可能存在问题.其目的只是简要介绍系统的基础,只能作为入门资料。程俊2020.11.15 目录一、 为什么要学习 RTOS 41.1 前后台系统 41.2 多任务系统 41.3 学习RTOS的意义 5二、 操作系统基础 62.1 链表 62.2 队列 62.3 任务 72.4 临界区 8三、 初识 FreeRTOS 83.1 FreeRTOS源码 83.1.1 Source 文件夹 83.1.2 Demo 文件夹 93.1.

2020-11-15 23:02:57 6019 2

原创 UART/I2C/SPI/1-wire四大通信接口的神解释

1、 裘千丈水上漂之UART射雕英雄传中的裘千丈说,UART就是我的轻功水上漂过河。要想从河上过(通信),使用最少的暗桩(使用最少的总线接口),且步伐按桩距固定(波特率固定后传输速率固定),步幅太大或太小都会落水。为了不被二弟裘千仞识破,可以安排侍卫在对岸监视通知,没风险才开始表演(流控)。UART 通用异步接收发送器,主机和从机至少要接三根线,RX,TX和GND,TX用于发送数据,RX用于接受数据,收发线独立,支持全双工方式。因为没有时钟控制,什么时机开始发数据,且保证对方正确开始接收?y如

2020-11-08 22:32:14 1314

基于RTOS的软件开发理论

基于RTOS的软件开发理论

2023-08-17

嵌入式C开发,我就是为了涨积分

嵌入式C开发

2023-08-17

批处理教材 学习 bat cmd

批处理教材 学习 bat cmd

2022-05-07

Can网络诊断15765中文全套.rar

can总线学习,主要是标准参考

2021-06-24

Huawei_LiteOS_Developer_Guide_zh.pdf

华为 LiteOS的体系结构,并介绍如何进行开发和调试,主要适用于Huawei LiteOS的开发者,针对物联网架构和软件开发工程师以及对鸿蒙系统的感兴趣的人员。

2020-09-24

代码自动格式化和静态分析工具codeCheck

基于cppcheck+Astyle的codeCheck ,支持c/c++代码自动格式化和静态分析。 分析->导入文件或文件夹,自动分析代码,排版对齐,静态分析,提示风险代码,以及注释规范。 适合C/C++新人培养和代码自动审核,适合小团队统一编码规范,减少隐患。 实乃居家旅行、开发学习必备神器。

2019-08-26

STM32L0X3 中文手册

本参考手册面向应用开发人员,提供有关使用 STM32L0x3 微控制器存储器与外设的完整信息。中文版的芯片手册。

2018-03-29

nmea定位数据分析和地图显示

一键分析NMEA数据(仅解析RMC),支持简单的过滤后,转成kml文件,自动导入到谷歌地图显示,直观展示定位信息与位置。

2016-12-03

设备自动测试工具

Qt开发的通过串口指令自动测试硬件设备的工具,发送预设的指令,并自动解析收到的回复是否满足要求,判断该功能项是否正常,否则提示红条以及显示原因。可用于产线或者其他测试硬件主板功能,需要设备软件支持相应的串口指令。

2016-03-08

OCM320240_3 触摸屏

OCM320240_3 触摸屏 底层驱动程序

2009-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除