- 博客(27)
- 资源 (5)
- 收藏
- 关注
原创 rt-thread入门之旅(二)—— rt_kprintf的实现
学习rt-thread主要是为了后期直接拿来玩几个项目,同时rt-thread有很多借鉴linux的地方,很适合用来学习分层架构,因此更多的是介绍实现思想,而不是实现细节。本着不重复造轮子的原则,如果有看到其他写的很好的地方,会直接放链接,不再赘述。最后分析下来,rt_kprintf的本质其实很简单,主要复杂在rt-thread为了平台适配隔离,给做的一套框架,因此学习rt-thread对我来说主要就是了解这个框架。总的来说,其实就是linux的框架的简单版本。
2023-04-04 00:41:55
1449
1
原创 关于函数形参的理解
问题背景关于函数调用时的形参问题,很多人都会遇到坑,特别是一些指针的传参,可能因为理解上的疑惑,从而出现一些内存泄露问题!知识点前提栈的理解函数调用过程说明先直接上一段代码:#include <stdio.h>void func(char *p, int *val){ int a = 100; p = "hello world"; val = &a; printf("val[%p] = %d \n", val, *val);
2022-02-28 00:30:38
430
原创 Linux学习-进程
文章目录函数接口获取进程号创建新进程fork()创建进程概念:进程pid:子进程、父进程fork函数,exec函数函数接口获取进程号获取当前进程号:getpid()获取父进程号: getppid()创建新进程fork()创建进程...
2021-10-21 21:13:17
147
原创 GIT常见问题
git clonegit clone 去拉一个大概1G的仓库,出现以下错误:error: RPC failed; curl 18 transfer closed with outstanding read data remainingfatal: The remote end hung up unexpectedlyfatal: early EOFfatal: index-pack failed究其原因是因为curl的postBuffer的默认值太小,我们需要调整它的大小,在终端重新配置大小
2021-10-21 17:42:31
2449
原创 FreeRTOS的heap_4的不足和思考
文章目录前言Heap_4缺陷1. 标记是否使用的最高位bit,在字节对齐后未判断2. 申请内存遍历链表,找到及退出学习点1. 字节对齐的写法2. 内存合并算法3. 链表设计前言这两天终于把freertos的内存管理看完了,由于看的比较细,所以看了好久才看完,这里整理一下所有思考和值得学习的地方。具体的原理就不介绍了,好多博客和视频都有具体说明,这里说一下heap_4的一些缺陷(heap_5与heap_4基本一样,就不一一列举了)Heap_4缺陷1. 标记是否使用的最高位bit,在字节对齐后未判断
2021-05-11 02:02:52
1023
5
原创 关于宏重复定义的问题分析
前言在项目中,遇到一个问题,发现一个文件里有2个同样的宏名,并且替代的值相同,可能是前面不小心多复制了一次导致;但是这里也值得深思和考虑,如果在一个项目中,不小心定义2个相同宏名,但是值不一样的现象呢?分析按照自我分析,宏只是在预处理阶段进行“替换操作”的作用,也就是说如果存在2个相同宏名,是可以进行编译的,但是应该会有警告信息;实践从上述结果来看,相同宏名可执行,但是由于在预处理是按顺序执行的,也就是说,前面替换完成后,在后面的过程中,会覆盖前面的替换,导致重复定义宏名的值被改变,造成以上的
2021-02-04 19:07:52
8106
原创 cJSON的源码解读
文章目录前言cJSON的一些信息cJSON的数据结构基本函数内部静态函数对外函数使用收获前言本博客内容主要是简单介绍一下cJSON的一些函数说明,由于源码不是很难,可以自己去看,如果嫌麻烦,可以直接看一下我的函数说明,然后大致看一下源码即可.一定要去看源码,能需要很多;cJSON的一些信息这个地址可以下载到最新的源码: https://github.com/DaveGamble/cJSON我看的源码比较老,学习为主,后期会阅读最新的源码;以下是我看的源码部分:链接:https://pan.
2020-05-17 00:35:55
537
原创 Vs code的安装和插件推荐
文章目录VS Code 的安装界面改为中文插件推荐1. C/C++2. C++ Intellisense3. One Dark Pro4. TODO Highlight 和 TodoTree5. Trailling Spaces6. Adam's Toolbar7. Doxygen Documentation Generator8. PythonVS Code 的安装直接去官网下载最新版: https://code.visualstudio.com/(这里推荐的下载64位的安装版, 安装目录最好是全英
2020-05-16 14:39:21
587
原创 IAR最实用的使用技巧--持续更新
文章目录1. 介绍2. IAR的快捷键使用技巧2.1 调试快捷键2.2 编辑快捷键2.3 其他快捷键3. 使用技巧3.1 Code Template 程序模板3.2 BreakPoints 断点关闭3.3 查看编译错误信息1. 介绍一般在window下的单片机编程,使用的软件是KEIL和IAR,下面先比较一下两者的区别:KEIL一般学生使用的比较多,功能强大,如果用好了,调试起来会很方便...
2019-07-24 11:29:41
2089
1
原创 C语言整数类型转换函数
文章目录概述强制类型转换使用GCC编译器,版本为TDM-GCC 4.9.2使用ICCARM编译器,在IAR中编译概述本人之前从来不知道C语言有类型转换函数,一般的书上也没有介绍这些函数,今天用到一个要去float的整数部分的功能,于是就强制类型转换,然后一直出问题。调试了半天,发现是不同编译器的强制类型转换有不同结果,有的是四舍五入的,有的是直接抛弃小数!!(GCC是直接抛弃的(用的比较多,所...
2019-07-02 16:11:51
800
原创 Modbus协议解析--小白一看就懂的协议
文章目录提问三连1.什么是Modbus?2.Modbus用来干什么?3.Modbus的内容是什么?提问三连什么是Modbus?Modbus用来干什么?Modbus怎么用?1.什么是Modbus?顾名思义,他是一个bus,即总线协议.如果你接触到这种协议,相信你所处的行业是工业方面或者你的产品用于工业.Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schn...
2019-07-01 23:44:03
52275
72
原创 毕业一年的感想
文章目录动机和说明一年学了啥?接下来一年学什么?其他动机和说明转眼间,已经毕业一年了,说实话,感觉自己这一年荒废了.昨天和大学同学聚了一下,然后回来的路上在b站看到一个up主(sheepcode)的一个视频,讲的大概是关于博客的内容,感悟很深;刚刚毕业的时候,也曾经写博客,想记录一下自己的学习路程,但是写了几篇之后,发现太浪费时间了.写一篇博客最起码要花费半个小时,而且又没人看,并且大...
2019-06-30 12:13:01
1928
6
原创 单片机中C语言少见的类型 大杂烩
C语言编程过程中,有很多少见的类型,现在在这里做个汇总,加深印象; 1. __类型 ( __IO、__O) __IO一般是 volatile 表示可读可写volatile 就是为了禁止编译器对其优化。在cortex-M3内文件中,就这样定义,如下:2. inline 内联修饰符 在c/c++中,为了解决一些频繁调用的小...
2018-11-22 16:40:55
231
转载 四张图看懂:FreeRTOS ——抢占式调度
本文部分转自https://www.cnblogs.com/yangguang-it/p/7157072.htmlFreeRTOS 操作系统是设置的数值越小任务优先级越低
2018-11-21 15:02:56
3209
原创 计算机网络基础知识 个人总结(一)
由于本人是个“业余选手”,自己非系统的学习计算机网络基础知识,所以总是容易忘记内容;比如IP的ABC类,还需要总结一下,加深印象才行;同时感觉,学习要积极,要幽默有趣地学习; 这类基础知识的博客很多的,推荐一个总结的挺好,又有图片的:http://www.cnblogs.com/maybe2030/p/4781555.html 如果你是小白,看完上面的博客内容,肯定是一团浆糊,...
2018-11-20 10:51:51
3382
转载 BCD和十进制转换
总是忘记BCD码的含义,感觉还是有必要手写一些加深印象;这篇文档主要就是知道BCD的使用意义,感觉之前学的都是知道一个BCD码,但是不知道用来干什么的。 对于嵌入式程序员而言,一般BCD码用于串口通讯(个人认为,希望各位补充),或者数据处理;而一般的串口通讯都是采用16进制的格式传输的;有些为了表示更清楚,所以采用BCD码代替16进制来表示10进制; 例如: 0x23 如果正常用...
2018-11-19 16:38:46
1301
原创 【嵌入式菜鸟成长记——逃不过的汇编指令1】终究逃不过的ARM汇编语言
大学里学了微机原理,里面学了汇编指令,考完试后就忘得一干二净;后面汇编也用的少,以至于都完了;以为自己学的C语言,用不到汇编的;虽然经常见到,但是都果断跳过,直到要学习FREERTOS,不得不接触ARM内核,不得不学习汇编;哎,终究逃不过去的,都是自欺欺人罢了; 现在将自己遇到的汇编都记录下来,一点点增加自己的汇编指令吧; 想想为什么自己这么不喜欢汇编呢,其实最主要的原因就是太多了...
2018-09-27 17:21:24
711
原创 【菜鸟学Linux——Linux快捷键】最有用的快捷键
shell下的快捷键:如果觉得按方向键速度太慢——上——Ctrl+P——查看上一条语句;下——Ctrl+N——查看下一条语句;左——Ctrl+B——左移光标;下——Ctrl+F——右移光标;(是不是瞬间就比移到方向键快了许多?) 左移一个太慢? Ctrl+A——直接移到行首;(HOME也行)右移一个太慢? Ctrl+E——直接移到行尾;(END也行)...
2018-09-19 21:22:43
129
原创 【linux--菜鸟学习之路】fread和fwrite
fread函数名: fread功 能: 从一个流中读数据用 法: int fread(void *ptr, int size, int nitems, FILE *stream);参 数:用于接收数据的地址(ptr) 单个元素的大小(size) 元素个数(nitems) 提供数据的文件指针(stream)返回值:成功读取的元素...
2018-09-12 22:59:05
1276
原创 真正弄清——SPI中的极性CPOL和相位CPHA 的时序图
【SPI基础知识简介】设备与设备之间通过某种硬件接口通讯,目前存在很多种接口,SPI接口是其中的一种。SPI中分Master主设备和Slave从设备,数据发送都是由Master控制。一个master可以接一个或多个slave。常见用法是一个Master接一个slave,只需要4根线:SCLK:Serial Clock,(串行)时钟MISO:Master In Slave O...
2018-07-19 16:46:03
2637
原创 DLT645-2007电能表通讯协议+DDSY5188电能表之间通讯简介
DLT645-2007通讯协议:1.发送的帧格式:1.1 帧起始符 0x68H 这个不多说,记住就好;1.2 地址域A0-A5地址域由 6 个字节构成,每字节 2 位 BCD 码,地址长度可达12位十进制数。每块表具有唯一的通信地址,且与物理层信道无关。当使用的地址码长度不足 6 字节时,高位用“0”补足。通信地址999...
2018-07-11 10:01:47
12685
14
原创 SecrueCRT8.0+unbuntu16.04 配置
SecrueCRT8.0.4从百度应用中心下载的,然后用破解工具破解;ubuntu 16.04 +已有sshd的服务用的VM虚拟机运行;具体配置如下:1. vm虚拟机网络适配器选择NAT连接;同时,VMnet8的IPv4配置自动获取IP地址;(我之前跟别的教程搞了一天,有的这个要配置有的没说,当初我把他配置成ubuntu的地址,结果搞了半天,没成功)2.在unbuntu的终端输入ifconfig,...
2018-03-27 13:07:44
470
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人