简单认识认识ELF文件

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看嵌入式笔记!几种常见的ELF文件 在Linux下,我们经gcc编译之后生成的可执行文件属于ELF文件:ELF是一类文件类型,而不是特指某一后缀的文件。ELF(Executable and Linkable Format,可执行与可链接格式)文件格式,在Linux下主要有如下三种文件:可执行文件(.ou...
📅 2023-04-30 阅读全文 →

请写一个函数输出如下波形

前两天群友岸与桥在群里问了这样一个面试题:看到这样一个问题,群里讨论得很热闹,几位群友也给出了一些解答,主要有两种思路:① 第一种思路是:依次输出相应电平,高、低电平持续的时间根据题目要求确定即可。关键代码如下(代码来自昵称为宋阳的群友):static void plus(uint16_t h_times, uint...
📅 2023-04-30 阅读全文 →

深度实践嵌入式调试神器MicroLab

上一篇文章嵌入式调试神软——MicroLab有对MicroLab进行了介绍,这一篇我们来一起实践一下。组态画布 首先,我们需要下载:1、MicroLab工具:https://gitee.com/fengmeitech/Micro-Lab2、MicroLab组态画布下位机驱动:https://gitee.com/fengmeitech/canvas下载后得到...
📅 2023-04-30 阅读全文 →

这种求结构体成员大小的方法你可能还没掌握~

在C语言编程中,有时候需要知道某结构体中某成员的大小,比如使用堆内存来存储结构体中的某成员时,需要知道该成员的大小,才好确定所需申请的空间大小。求某结构体中某成员的大小,你会怎么做?例子:typedef struct{ char a;   char c;  short...
📅 2023-04-30 阅读全文 →

C语言对象编程第一弹:封装与抽象

前言 上次整理了一篇关于面向对象的笔记:《什么是面向对象?》。简单地分享了面向对象的一些基础知识。C语言虽不是面向对象的语言,但也可以使用面向对象的思想来设计我们的程序。C语言 + 面向对象的思想在我们嵌入式中使用得很广泛,主要优点就是能使我们的软件拓展性更好、更易读、更容易维护等。因为这一块知识也比较重要,属于通用知识,所以打算分享几篇笔记与大家一起学习...
📅 2023-04-30 阅读全文 →

C语言对象编程第二弹:继承

前言 上一篇分享了《C语言对象编程第一弹:封装与抽象》以实例分享了C语言对象编程的继承与抽象。本次分享C语言对象编程第二弹:继承。继承简单说来就是父亲有的东西,孩子可以继承过来。当创建一个类时,我们不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。这个已有的类称为基类,新建的类称为派生类。继承在C++ 中还会细分为很多,我...
📅 2023-04-30 阅读全文 →

OpenBLT Bootloader的使用分享

前言 分享的C语言的帖子大家似乎不太感兴趣,那我们就拿起吃灰的板子来玩吧。。前几天在安富莱公众号有了解到OpenBLT,今天我们就来实践一下:OpenBLT 简介 OpenBLT是一种开源引导加载程序,可以在任何微控制器上运行并使用任何类型的通信接口来执行软件更新,而无需专用的调试器硬件。官网介绍页:https://www.feaser.com/openb...
📅 2023-04-30 阅读全文 →

C语言对象编程第三弹:多态

点击上方「嵌入式大杂烩」,选择「置顶公众号」第一时间查看编程笔记!多态的概念及C++例子 关于多态,之前整理的《什么是面向对象?》这篇文章有说到:多态按字面的意思就是多种形态。当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态。多态意味着调用成员函数时,会根据调用函数的对象的类型来执行不同的函数。比如关于多态的C++的例子(该C++代码来自菜鸟...
📅 2023-04-30 阅读全文 →

嵌入式百宝箱:第8期

各位,不好意思!迟来的汇总。嵌入式百宝箱是咱公众号推文汇总的一种形式。主要是汇总本周发布过的推文,并做一些概述及推荐语。这样可以让一些错过推文的朋友可以根据自己的需要选择性的去读一些文章。同时,也可能会分享一些杂谈。比如分享我自己的一些个人经历、感受、总结,或者讨论知乎上的一些问题等等。这个百宝箱的内容会不断增多,可以配合公号的搜索功能来使用:本周推文汇总...
📅 2023-04-30 阅读全文 →

bug解决不了?使用日志法

交心 在我们嵌入式开发中,调试代码的方法有很多。比如使用调试器在线调试、借助一些测量仪器、输出调试日志等方式。没有哪种方法是最好的调试方法,实际开发中需要根据实际情况借助不同的方法进行调试。但是,在一些稍微大点的项目中,输出调试日志却是比较好的调试方法。输出日志可以比较随意,想输出什么就输出什么,但是也得注意两个点:一是输出的日志尽量整洁明了,因为如果日志...
📅 2023-04-30 阅读全文 →

C语言、嵌入式项目中一些常用知识及技巧:第一弹

大家好,我是ZhengN。本次给大家分享一些C语言、嵌入式项目中的常用知识。1、使用宏给结构体初始化 如果频繁使用一个结构体的话,使用使用宏来给结构体进行赋值是很方便的一种做法。例子:左右滑动查看全部代码>>>#include <stdio.h>#define  NEW_RECT(length,&...
📅 2023-04-30 阅读全文 →

爱上单片机,拿下奖学金,一名嵌入式小白的成长记录

最近来了一些小白同学,分享点经验。希望以下的一些经验、经历可以给这些同学一些参考方向。ZhengN是新能源专业的,曾经编程这一块让我很是头疼。我学新能源的,为啥还要学这东西。。(作为嵌入式大杂烩公众号的小编,有谁能想到我C语言曾经挂了两次~)。后来被老乡带入嵌入式坑的,后来就一在坑内,但很知足。否则如果按照本专业走我现在多半、大概成为了一名太阳能电池板安装...
📅 2023-04-30 阅读全文 →

你的单片机裸机程序框架是怎样的?

前言 前不久,我有位做测试的朋友转去做开发的工作,面试遇到了一个问题,他没明白,打电话问了我。题目大概就是:在单片机裸机开发时,单片机要处理多个任务,此时你的程序框架是怎样的呢?这其实是个经典面试问题,我以前面试也被问过。答案一:轮询系统代码结构如:左右滑动查看全部代码>>>int main(void){ init_s...
📅 2023-04-30 阅读全文 →

例说嵌入式实用知识之JSON数据

前言上周一位小读者问了JSON相关的内容,答应了他会写一篇相关的笔记。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON在互联网相关开发中用得很多,在我们嵌入式中用得也不少。最近小编在项目中也有用到,分享分享。简单的JSON格式数据如:{    "name":&nbsp...
📅 2023-04-30 阅读全文 →

联合体用的多吗?

大家好,我是ZhengN。本次给分享联合体的一些知识。联合体/共用体的使用 C语言中,联合体/共用体可以实现同一个内存空间中存储不同的数据类型(不是同时存储)。利用这个特性可以在一些情况下给我们提供便利。比如验证大小端有很多种方法,使用联合体也可以:#include <stdio.h>union test{ &nb...
📅 2023-04-30 阅读全文 →

干货 | 嵌入式必备技能之Git的使用

代码版本控制对于我们嵌入式软件开发岗是一项基础、必备的技能,需要熟练掌握。实际工作中常用的版本控制系统有:Git(分布式版本控制系统)与SVN(集中式版本控制系统)。本次分享Git在实际工作中的基本使用方法。一、Git的下载、安装及配置1、Git与Github:Git:分布式版本控制系统。GitHub:面向开源及私有软件项目的托管平台。与GitHub类似的是...
📅 2023-04-29 阅读全文 →

面试官:Linux下如何编译C程序?

Windows下常用IDE来编译,Linux下直接使用gcc来编译,编译过程是Linux嵌入式编程的基础,也是嵌入式高频基础面试问题。一、命令行编译及各个细分编译过程hello.c示例代码:#include <stdio.h>int main(void){  printf("Hello worl...
📅 2023-04-29 阅读全文 →

GDB调试器原来那么简单

GDB简介 GDB(GNU Debugger)是一个强大的命令行调试工具。一般的,在Windows下进行开发,很少操控命令行调试,调试器大多与编译器都集成在IDE里了。当然,在Windows下也可以直接使用gcc、gdb来做编译调试我们的C程序,如MinGW( 一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合 )中就同时包含...
📅 2023-04-29 阅读全文 →

嵌入式百宝箱:第9期

国庆期间(1~8号)停更,给大家来个文章汇总方便大家阅读。嵌入式百宝箱是咱公众号推文汇总的一种形式。主要是汇总本周发布过的推文,并做一些概述。这样可以让一些错过推文的朋友可以根据自己的需要选择性的去读一些文章。同时,也可能会分享一些杂谈。比如分享我自己的一些个人经历、感受、总结,或者讨论知乎上的一些问题等等。这个百宝箱的内容会不断增多,可以配合公号的搜索功能...
📅 2023-04-29 阅读全文 →

wireshark抓包工具的使用及分析

前段时间看到群里在讨论Wireshark抓包工具,想写一篇使用笔记但一直没来得及写,本篇就通过实例来分享wireshark抓包工具的使用。Wireshark简介 Wireshark 是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark下载、安装 下载链接:https://www.wiresh...
📅 2023-04-29 阅读全文 →

简单认识认识mqtt及mosquitto

小编对Linux这一块的实际开发经验虽然还不是很足,但也知道进程间通信有那么几种方式:管道、消息队列、共享内存、套接字等。某项目中使用了MQTT作为进程间的通信方式,感觉很新颖,网上好像也比较少有看到使用MQTT来作为进程间通信的方式的。这两篇笔记我们就来一起学习一下这种方式。MQTT的一些介绍❝以下介绍内容来自《[野火]《LwIP应用开发实战指南》❞MQ...
📅 2023-04-29 阅读全文 →

mqtt应用于进程间通信

前言上一篇分享了:《简单认识认识mqtt及mosquitto》,但也只是分享了mqtt的一些概念及mosquitto的一些介绍。然后就有读者来催更了:这一篇我们就来分享mqtt应用于进程间通信的实例。我们沿用往期文章《例说嵌入式实用知识之JSON数据》的综合demo来改造改造。那个综合demo的功能是这样子的:这是以socket来作为进程间通信的方式,并且这...
📅 2023-04-29 阅读全文 →

C基础、经典:交换a、b值较好的方法?

交换a、b的值在C语言的学习中是很常见的问题。最常用的方法就是引入一个中间变量当做中间介质来交换a、b的值。代码如下:void change_ab(int *a, int *b){    int temp = 0;  &nbsp...
📅 2023-04-29 阅读全文 →

C基础、经典:字符串逆序

分享一道经典的C语言题目。题目:字符串逆序。如:hello world转换为dlrow olleh。流程图:代码:左右滑动查看全部代码>>>/*- 程序功能: 字符串反转- 作者:ZhengN- 公众号:嵌入式大杂烩*/#include <stdio.h>#include&nb...
📅 2023-04-29 阅读全文 →

一个不该被遗忘的打印输出函数

点击上方「嵌入式大杂烩」,「星标公众号」第一时间查看精彩文章!我们大多都使用printf来打印一些信息,其它的接口都比较少用。这里介绍一个被我们遗忘的打印输出函数:perror函数。perror函数简介perror(s) 用来将上一个函数发生错误的原因输出到标准设备(stderr)。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照...
📅 2023-04-29 阅读全文 →

什么是不完全类型?

点击上方「嵌入式大杂烩」,「星标公众号」第一时间查看精彩文章!C语言类型C的类型分为:对象类型(char、int、数组、指针、结构体等)函数类型不完全类型什么是不完全类型?C/C++中不完全类型有三种不同形式:void、未指定长度的数组以及具有非指定内容的结构和联合。使用不完全类型的指针或引用,不需要知道类型的全部内容。 比如:我们常用以下方式声...
📅 2023-04-29 阅读全文 →

如何同时输出调试信息到终端及文件?

点击上方「嵌入式大杂烩」,「星标公众号」第一时间查看精彩文章!在Linux下的开发中,printf打印调试信息默认输出到标准输出 stdout (即屏幕/终端)中。我们也可以使用输出重定向技术输出到指定文件中,输出重定向即是把原本要输出到屏幕的信息写入到指定文件中。比如:但是有时候既要实时查看打印调试信息,又要把这些调试信息保存下来发给他人分析。下面分享能...
📅 2023-04-29 阅读全文 →

如何查看Linux命令工具的源码?

点击上方「嵌入式大杂烩」,「星标公众号」第一时间查看精彩文章!上一篇分享了两个使用的小工具:《如何同时输出调试信息到终端及文件?》。有位小伙伴留言问道tee工具的代码在哪:这篇文章我们就来简单分享一下。首先,我们需要了解Linux下的命令分为大致分为两类:内置命令与非内置命令。查看内置命令源码内置命令是Shell自带的, shell自己进行管理。内部命令由...
📅 2023-04-29 阅读全文 →

Protobuf:一种更小、更快、更高效的协议

点击上方「嵌入式大杂烩」,「星标公众号」第一时间查看嵌入式笔记!前言之前分享关于JSON的使用:例说嵌入式实用知识之JSON数据。JSON类型数据可读性很好,但是整个数据包中会带有一些无用的数据,会在一定程度上带来通信负担。本篇文章我们来分享一种更轻量的数据格式——protobuf。protobuf的优点:更小、更快、更简单。支持多种编程语言 。解析速度快...
📅 2023-04-29 阅读全文 →

我的单片机转嵌入式Linux之路

点击上方「嵌入式大杂烩」,「星标公众号」第一时间查看嵌入式笔记!大家好,我是ZhengN。其实这是一篇大杂烩文,哈哈~好久没来扯谈了,今天是周末,我来简单分享我最近的情况及一些感想。经常看本公号的朋友应该有发现近几个月我写原创笔记的频率低了很多。原因有二:一方面是我身体出了点状况,另一方面是我换了一份工作。记得大概去年的七八月份的时候,有一次颈椎突然疼得我...
📅 2023-04-29 阅读全文 →