在嵌入式开发领域,选择一款合适的开发工具至关重要。而VSCode作为一款轻量级、强大的编辑器,已然成为开发者的首选。 本文将推荐一些实用的、与我们嵌入式开发相关的VSCode插件。 serial terminal 这款插件提供了一个简单的串口终端,可以帮助我们轻松地与串口设备进行通信。它支持多种波特率和数据位格式,并且可以轻松地发送和接收数据。 GitLens GitLens 是
线程安全 在多线程编程中,线程安全是必须要考虑的因素。 什么是线程安全? 在多线程环境中,多个线程在同一时刻对同一份资源进行写操作时,不会出现数据不一致。反之,则是线程非安全的。 线程安全是程序设计中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的公用变量,使程序功能正确完成。 为了确保在多线程环境中的线程安全,就要确保数据的一致性。确保线程安全的几种方法:
大家好,我是杂烩君。 越来越多的硬件产品,硬件构成不仅仅是集成在一块板子上,而是多块控制板协同工作。 此时,就会涉及到多块板之间的通信(有线/无线通信),就会涉及到到通信协议。很多时候,我们都会自定义一些协议。 我们之前在也分享一种常用的自定义协议格式: 分享一种灵活性很高的协议格式(附代码例子) 在多板系统中,会有以下这些应用场景: 每块板都有OTA升级的需求。 可能某块板
大家好,我是杂烩君。 Git版本管理工具是我们日常开发中常用的工具,熟练使用它可以提高我们的工作效率。 老司机们常常使用命令行的方式进行操作,新手可借助可视化工具来进行过渡,命令行与可视化工具结合使用来加深对Git的熟悉程度。 下面推荐两个较受欢迎的可视化工具: vscode 如果大家平时主要使用vscode来编写代码的话,优先推荐vscode的 GitLens插件 。 GitLe
https://gitee.com/zhengnianli/EmbedSummary 我们的资料仓库下面之前有一位小伙伴留言: 杂烩君之前偶然间知道aardio这么一个工具,但没有实际去了解过。本期花点时间来了解、学习一下aardio,看看aardio是不是如这位朋友所说的这是一个不错的工具。 本期主角:aardio aardio属于易用性极强的动态语言,但也是一种混合语言
FlashDB简介FlashDB 是一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。与传统的基于文件系统的数据库不同,FlashDB 结合了 Flash 的特性,具有较强的性能及可靠性。并在保证极低的资源占用前提下,尽可能延长 Flash 使用寿命。 FlashDB 提供两种数据库模式: 键值数据库 :是一种非关系数据库,它将数据存储为键值(Key-Value)对集合,其中
前言 大家好,我是杂烩君。本次来分享一些芯片相关的小科普文。作为嵌入式开发工程师,我们对芯片都需要有一定的了解。 指令集 1、指令集的体现 指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合。而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个重要标志。 指令集也作为一种标准规范,用于规范芯片设计工程师及编译器开发工程师: 因为芯片与IDE都遵
大家好,我是杂烩君。 嵌入式代码优化是一个复杂的过程,它不仅取决于代码本身,还取决于目标硬件平台、编译器以及优化的目标(例如速度、内存使用、功耗等)。 不过,有一些通用的技巧可以在编写嵌入式代码时考虑到: 使用查表法在内存空间较为充足的情况下,有时候可以牺牲一些空间来换取程序的运行速度。查表法就是 以空间换取时间 的典型例子。 比如:编写程序统计一个4bit(0x0~0xF)数据中1的个数
大家好,我是杂烩君。 在Linux下进行开发,对于一些繁杂的、需要重复性进行的工作,我们都有必要写一些shell脚本来完成这些繁杂的工作。 本篇笔记围绕如下内容做分享: hello shell 老规矩,hello走一波~ 最简单的shell脚本: #!/bin/bash echo "hello shell" # 这是注释 #! 是一个约定标记,指定这个脚本使用哪个shell
大家好,我是杂烩君。 本次我们来介绍关于Makefile的一些知识。 什么是make、Makefile? make是一个 构建工具,主要用于C/C++项目。 Makefile是一个编译脚本,使用 make 工具解释Makefile(makefile)文件中的指令(编译指令)进行我们的项目编译。 在Linux环境下进行开发,工程源文件较少时,直接使用gcc进行编译。源文件较多及工程复杂时,
实际开发中,经常要获取各种时间。下面汇总几个常用的时间接口: 1、clock_gettime #include <time.h> /** * @brief 根据系统时钟的类型,获取当前时间 * * Detailed function description * * @param[in] __clock_id: 系统时钟的类型。常用取值:
大家好,我是杂烩君。 上一篇文章中我们分享了关于make与Makefile的知识:Makefile常用基础知识梳理!。make工具有很多种:gnu make、QT的qmake、微软的MS nmake等。不同的make工具遵循不同的规范,如果我们的程序想要运行在不同的平台上,就需要根据不同地平台的make工具规范编写对应的Makefile文件。显然,这很不方便。 CMake就是一个可以解决上面这
静态代码扫描? 静态代码扫描是指无需运行被测代码,通过词法分析、语法分析、控制流、数据流分析等技术对程序代码进行扫描,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。 同样的,也有运行时诊断的工具,如Valgrind等。 往期博文:Valgrind仿真调试工具的使用 静态代码扫描工具有很多,主流如: cppcheck。免费,开
在应用开发中,生产者,消费者的模型非常常见,一方产生数据并把数据放入队列中,而另一方从队列中取数据,先进先出。 应用:线程间通信/进程间通信。 Linux系统中提供了两种不同接口的消息队列: POSIX消息队列。POSIX为可移植的操作系统接口。 System V消息队列。System V 是 AT&T 的第一个商业UNIX版本(UNIX System III)的加强。
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 前言 下面分享一下小编的省级一等奖作品三——高校公寓远程能源监控系统。关于作品一及作品二可移步:省电子设计竞赛一等奖作品分享(一)和省电子设计竞赛一等奖作品分享(二)进行阅读。 合泰半导体隶属台湾盛群半导体集团,合泰杯单片机应用设计竞赛的比赛形式为
本文为读者投稿,分享的是一个四川省电子设计竞赛一等奖作品。 竞赛题目 今年的四川省电子设计竞赛共有四道题目,基于我们对做车比较了解,所以选择了c题————坡道行驶电动小车,该题目要求如下: 方案选择 1、主控芯片的选择 由于竞赛题目要求必须用msp430作为主控芯片,所以没办法,只能短时间来了解它,熟悉它。还好之前的师兄有430的开源库和例程,所以
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 刚入职的时候,公司组织参观,参观的时候看到了公司的AGV循迹小车,用于搬运物料。看到这些小车的时候,感觉很熟悉,这让我想起了16年TI杯电子设计竞赛,当时我们做的就是一个循迹小车。 现在突然想起一件事,当时我面试的时候,也许就是我恰好跟面试官说了这个循迹
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 前言 小编大学期间共参加了三次省级/国家级的电子设计竞赛/单片机应用设计大赛,均获得了一等奖,现将这些作品分享出来,供有需要的朋友进行学习。 大学期间,电子类的比赛比较重要的比赛应该就是每年暑假的省/国家级大学生电子设计竞赛吧,其中省赛是偶数年
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 1、作品介绍 首先,看一下作品的演示视频:演示视频 温馨提示:因为是进行人机对话演示,所以应打开音量观看哈。 这是本人的毕业设计,一个智能的天气预报系统。显示屏上显示各种天气指标及实时显示时间日期等。可以使用触摸屏输入城市名称搜索天气,也可以使用语音
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 在使用STM32的串口接收数据的时候,我们常常会使用接收中断的方式来接收数据,常用的是RXNE。这里分享另一种接收数据的方式——IDLE中断(PS:本文的例子运行在STM32F103ZET6上)。 一、IDLE中断什么时候发生? IDLE就是串口收到一帧数
大家好,我是杂烩君。 本次分享一些嵌入式软件的调试经验及一些有用的工具。 需要说明的是:这不是一篇大神教你如何成为大神的文章,因为我还不是大神;而是一名普通嵌入式软件工程师从毫无经验到略有经验的一点调试总结,都很基础。 我们常常说,软件三分写七分调。实际开发中,确实也是这样子的。我工作这几年了,对这体会也越来越深。每当需求一下来,我代码很快就可以写完,但是,调试需要花很多时间。 这里需要明
大家好,我是杂烩君。 最近,朋友送了块小板子,板子上的MCU是个很有意思的东西——并行多线程处理器MC3172 。 通俗地说,这颗MCU的内部实现了类似RTOS多线程的功能。但是MC3172 编程与RTOS编程的最大区别就是: MC3172多线程绝对并行运行,没有切换抖动及开销。 MC3172无线程优先级、优先级反转、死锁等概念。 MC3172所有中断都可以安排专门线程处理,没有中断
STM32 | 串口IAP实例分享 1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 什么是IAP?IAP是In Application Programming的首字母缩写,IAP是用户自己的程序在运行过程中对User Flash的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的
大家好,我是杂烩君。 C 语言内存问题,难在于定位,定位到了就好解决了。 这篇笔记我们来聊聊踩内存。踩内存,通过字面理解即可。本来是操作这一块内存,因为设计失误操作到了相邻内存,篡改了相邻内存的数据。 踩内存,轻则导致功能异常,重则导致程序崩溃死机。 内存,粗略地分: 静态存储区 动态存储区 存储于相同存储区的变量才有互踩内存的可能。 静态存储区踩内存 分享一个之前在实际
分享一种灵活性很高的协议格式(附代码例子) 大家好,我是杂烩君。 嵌入式开发中,常常会自定义一些协议格式,比如用于板与板之间的通信、客户端与服务端之间的通信等。 自定义的协议格式可能有很多种,本篇文章我们来介绍一种很常用、实用、且灵活性很高的协议格式——ITLV格式。 什么是ITLV格式? 大家可能看到网络上的很多文章用的是TLV(Tag、Length、Value)格式数据。实际中,可以
STM32 | ISP下载的原理是什么? 1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 上一篇笔记分享了STM32的串口IAP实例:STM32串口IAP分享。其中,下载IAP程序时用ISP的方式进行下载。这里的ISP又是什么呢? ISP方式下载程序原理 ISP:In System Programin
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 前言 下面分享一下小编的省级一等奖作品三——高校公寓远程能源监控系统。关于作品一及作品二可移步:省电子设计竞赛一等奖作品分享(一)和省电子设计竞赛一等奖作品分享(二)进行阅读。 合泰半导体隶属台湾盛群半导体集团,合泰杯单片机应用设计竞赛的比赛形式为:作
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 本文为读者投稿,分享的是一个四川省电子设计竞赛一等奖作品。 竞赛题目 今年的四川省电子设计竞赛共有四道题目,基于我们对做车比较了解,所以选择了c题————坡道行驶电动小车,该题目要求如下: 方案选择 1、主控芯片的选择 由
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 前言 小编大学期间共参加了三次省级/国家级的电子设计竞赛/单片机应用设计大赛,均获得了一等奖,现将这些作品分享出来,供有需要的朋友进行学习。 大学期间,电子类的比赛比较重要的比赛应该就是每年暑假的省/国家级大学生电子设计竞赛吧,其中省赛是偶数年,国赛是
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 刚入职的时候,公司组织参观,参观的时候看到了公司的AGV循迹小车,用于搬运物料。看到这些小车的时候,感觉很熟悉,这让我想起了16年TI杯电子设计竞赛,当时我们做的就是一个循迹小车。 现在突然想起一件事,当时我面试的时候,也许就是我
1024G 嵌入式资源大放送!包括但不限于C/C++、单片机、Linux等。关注微信公众号【嵌入式大杂烩】,回复1024,即可免费获取! 这次任务为:开发个显示板(我把它叫做从机)。要求实时接收显示主机所控制的系统的当前的运行状态,其中显示部分由一个五位八段数码管组成,从机与主机之间通过串口来通信,其中由从机主动向主机申请数据,主机收到申请包之后回传一帧数据包。 当主机系统正常运行时,
大家好,我是杂烩君。 最近,朋友送了块小板子,板子上的MCU是个很有意思的东西——并行多线程处理器MC3172 。 通俗地说,这颗MCU的内部实现了类似RTOS多线程的功能。但是MC3172 编程与RTOS编程的最大区别就是: MC3172多线程绝对并行运行,没有切换抖动及开销。 MC3172无线程优先级、优先级反转、死锁等概念。 MC3172所有中断都可以安排专
大家好,我是杂烩君。 上一篇笔记我们分享了嵌入式Linux单板连接飞燕物联网平台,这篇我们分享一下配网。 在这之前,建议阅读往期相关笔记: smartconfig一件配网:嵌入式大杂烩周记第 5 期 : SmartLink 嵌入式Linux设备开启无线AP/无线接入点:废旧板子再利用:搭建无线调试环境! 下面我们来简单分享基于阿里生活物联网平台的AP配网实例。
大家好,我是杂烩君。 最近,我们的设备连接的云平台需要切到阿里的飞燕平台,做个笔记记录下。 阿里的物联网平台有好几个: 物联网平台 生活物联网平台(飞燕平台) 城市物联网平台 它们的应用场景不一样。其中,物联网平台的入口是最容易找到的,网上大多数demo都是基于物联网平台。而本篇笔记我们是基于生活物联网平台(飞燕平台)来记录的。 阿里的生活物联网平台是
大家好,我是杂烩君。 本次与大家分享一个ota升级相关的应用实践。 应用场景 某项目中,有三块控制板协同工作,WiFi模块挂在其中一块板上: 其中,三块板子都有升级的需求。即board1需要从云端下载各板子的升级文件之后通过串口分发给另外两块板子。 思路及一些缩减代码 作为board1的开发者,除了处理好给board2、board3分包分发升级文件之外,还需要处理好整个升级过程的可
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信