<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[“社会大学三年级”的博客]]></title><description><![CDATA[朝闻道，午秃头，夕不想死....... 快乐地学习努力！]]></description><link>https://blog.youkuaiyun.com/panda5_csdn</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; panda5_csdn]]></copyright><item><title><![CDATA[rt-thread入门之旅（二）—— rt_kprintf的实现]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/129942665</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/129942665</guid><author>panda5_csdn</author><pubDate>Tue, 04 Apr 2023 00:41:55 +0800</pubDate><description><![CDATA[学习rt-thread主要是为了后期直接拿来玩几个项目，同时rt-thread有很多借鉴linux的地方，很适合用来学习分层架构，因此更多的是介绍实现思想，而不是实现细节。本着不重复造轮子的原则，如果有看到其他写的很好的地方，会直接放链接，不再赘述。最后分析下来，rt_kprintf的本质其实很简单，主要复杂在rt-thread为了平台适配隔离，给做的一套框架，因此学习rt-thread对我来说主要就是了解这个框架。总的来说，其实就是linux的框架的简单版本。]]></description><category></category></item><item><title><![CDATA[#define和gcc +Dxx有什么区别]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/129266153</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/129266153</guid><author>panda5_csdn</author><pubDate>Wed, 01 Mar 2023 23:21:08 +0800</pubDate><description><![CDATA[define 和 gcc -Dxx区别]]></description><category></category></item><item><title><![CDATA[感芯MC3172开发板入门（一）]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/125732906</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/125732906</guid><author>panda5_csdn</author><pubDate>Mon, 11 Jul 2022 23:14:00 +0800</pubDate><description><![CDATA[【MC3172】 -- 硬件多线程MCU]]></description><category></category></item><item><title><![CDATA[关于函数形参的理解]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/123173446</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/123173446</guid><author>panda5_csdn</author><pubDate>Mon, 28 Feb 2022 00:30:38 +0800</pubDate><description><![CDATA[问题背景
关于函数调用时的形参问题，很多人都会遇到坑，特别是一些指针的传参，可能因为理解上的疑惑，从而出现一些内存泄露问题！
知识点前提

栈的理解
函数调用过程

说明
先直接上一段代码：
#include &lt;stdio.h&gt;

void func(char *p, int *val)
{
    int a = 100;
    p = "hello world";
    val = &amp;a;

    printf("val[%p] = %d \n", val, *val);
  ]]></description><category></category></item><item><title><![CDATA[Linux学习-进程]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/120894838</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/120894838</guid><author>panda5_csdn</author><pubDate>Thu, 21 Oct 2021 21:13:17 +0800</pubDate><description><![CDATA[文章目录函数接口获取进程号创建新进程fork()创建进程
概念：

进程pid：子进程、父进程
fork函数，exec函数

函数接口
获取进程号
获取当前进程号：getpid()
获取父进程号： getppid()
创建新进程
fork()创建进程

...]]></description><category></category></item><item><title><![CDATA[GIT常见问题]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/120891257</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/120891257</guid><author>panda5_csdn</author><pubDate>Thu, 21 Oct 2021 17:42:31 +0800</pubDate><description><![CDATA[git clone
git clone 去拉一个大概1G的仓库，出现以下错误：
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

究其原因是因为curl的postBuffer的默认值太小，我们需要调整它的大小，在终端重新配置大小
]]></description><category></category></item><item><title><![CDATA[FreeRTOS的heap_4的不足和思考]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/116620387</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/116620387</guid><author>panda5_csdn</author><pubDate>Tue, 11 May 2021 02:02:52 +0800</pubDate><description><![CDATA[文章目录前言Heap_4缺陷1. 标记是否使用的最高位bit，在字节对齐后未判断2. 申请内存遍历链表，找到及退出学习点1. 字节对齐的写法2. 内存合并算法3. 链表设计
前言
这两天终于把freertos的内存管理看完了，由于看的比较细，所以看了好久才看完，这里整理一下所有思考和值得学习的地方。
具体的原理就不介绍了，好多博客和视频都有具体说明，这里说一下heap_4的一些缺陷（heap_5与heap_4基本一样，就不一一列举了）
Heap_4缺陷
1. 标记是否使用的最高位bit，在字节对齐后未判断
]]></description><category></category></item><item><title><![CDATA[关于宏重复定义的问题分析]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/113662678</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/113662678</guid><author>panda5_csdn</author><pubDate>Thu, 04 Feb 2021 19:07:52 +0800</pubDate><description><![CDATA[前言
在项目中，遇到一个问题，发现一个文件里有2个同样的宏名，并且替代的值相同，可能是前面不小心多复制了一次导致；
但是这里也值得深思和考虑，如果在一个项目中，不小心定义2个相同宏名，但是值不一样的现象呢？
分析
按照自我分析，宏只是在预处理阶段进行“替换操作”的作用，也就是说如果存在2个相同宏名，是可以进行编译的，但是应该会有警告信息；
实践

从上述结果来看，相同宏名可执行，但是由于在预处理是按顺序执行的，也就是说，前面替换完成后，在后面的过程中，会覆盖前面的替换，导致重复定义宏名的值被改变，造成以上的]]></description><category></category></item><item><title><![CDATA[cJSON的源码解读]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/106168034</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/106168034</guid><author>panda5_csdn</author><pubDate>Sun, 17 May 2020 00:35:55 +0800</pubDate><description><![CDATA[文章目录前言cJSON的一些信息cJSON的数据结构基本函数内部静态函数对外函数使用收获
前言
本博客内容主要是简单介绍一下cJSON的一些函数说明,由于源码不是很难,可以自己去看,如果嫌麻烦,可以直接看一下我的函数说明,然后大致看一下源码即可.
一定要去看源码,能需要很多;
cJSON的一些信息
这个地址可以下载到最新的源码: https://github.com/DaveGamble/cJSON
我看的源码比较老,学习为主,后期会阅读最新的源码;
以下是我看的源码部分:

链接：https://pan.]]></description><category></category></item><item><title><![CDATA[Vs code的安装和插件推荐]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/106157918</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/106157918</guid><author>panda5_csdn</author><pubDate>Sat, 16 May 2020 14:39:21 +0800</pubDate><description><![CDATA[文章目录VS Code 的安装界面改为中文插件推荐1. C/C++2. C++ Intellisense3. One Dark Pro4. TODO Highlight 和 TodoTree5. Trailling Spaces6. Adam's Toolbar7. Doxygen Documentation Generator8. Python
VS Code 的安装
直接去官网下载最新版: https://code.visualstudio.com/
(这里推荐的下载64位的安装版, 安装目录最好是全英]]></description><category></category></item><item><title><![CDATA[关于malloc(0) 和malloc(-1)的一些思考]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/99959037</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/99959037</guid><author>panda5_csdn</author><pubDate>Wed, 21 Aug 2019 14:44:54 +0800</pubDate><description><![CDATA[malloc(0), malloc(-1),malloc(1)]]></description><category></category></item><item><title><![CDATA[IAR最实用的使用技巧--持续更新]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/97111315</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/97111315</guid><author>panda5_csdn</author><pubDate>Wed, 24 Jul 2019 11:29:41 +0800</pubDate><description><![CDATA[文章目录1. 介绍2. IAR的快捷键使用技巧2.1 调试快捷键2.2 编辑快捷键2.3 其他快捷键3. 使用技巧3.1 Code Template 程序模板3.2 BreakPoints  断点关闭3.3 查看编译错误信息
1. 介绍
一般在window下的单片机编程，使用的软件是KEIL和IAR，下面先比较一下两者的区别：

KEIL一般学生使用的比较多，功能强大，如果用好了，调试起来会很方便...]]></description><category></category></item><item><title><![CDATA[C语言整数类型转换函数]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/94436371</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/94436371</guid><author>panda5_csdn</author><pubDate>Tue, 02 Jul 2019 16:11:51 +0800</pubDate><description><![CDATA[文章目录概述强制类型转换使用GCC编译器，版本为TDM-GCC 4.9.2使用ICCARM编译器，在IAR中编译
概述
本人之前从来不知道C语言有类型转换函数，一般的书上也没有介绍这些函数，今天用到一个要去float的整数部分的功能，于是就强制类型转换，然后一直出问题。调试了半天，发现是不同编译器的强制类型转换有不同结果，有的是四舍五入的，有的是直接抛弃小数！！（GCC是直接抛弃的（用的比较多，所...]]></description><category></category></item><item><title><![CDATA[Modbus协议解析--小白一看就懂的协议]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/94332166</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/94332166</guid><author>panda5_csdn</author><pubDate>Mon, 01 Jul 2019 23:44:03 +0800</pubDate><description><![CDATA[文章目录提问三连1.什么是Modbus?2.Modbus用来干什么?3.Modbus的内容是什么?
提问三连
什么是Modbus?
Modbus用来干什么?
Modbus怎么用?

1.什么是Modbus?
顾名思义,他是一个bus,即总线协议.如果你接触到这种协议,相信你所处的行业是工业方面或者你的产品用于工业.

Modbus是一种串行通信协议，是Modicon公司（现在的施耐德电气 Schn...]]></description><category></category></item><item><title><![CDATA[毕业一年的感想]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/94300873</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/94300873</guid><author>panda5_csdn</author><pubDate>Sun, 30 Jun 2019 12:13:01 +0800</pubDate><description><![CDATA[文章目录动机和说明一年学了啥?接下来一年学什么?其他
动机和说明
转眼间,已经毕业一年了,说实话,感觉自己这一年荒废了.

昨天和大学同学聚了一下,然后回来的路上在b站看到一个up主(sheepcode)的一个视频,讲的大概是关于博客的内容,感悟很深;

刚刚毕业的时候,也曾经写博客,想记录一下自己的学习路程,但是写了几篇之后,发现太浪费时间了.写一篇博客最起码要花费半个小时,而且又没人看,并且大...]]></description><category></category></item><item><title><![CDATA[单片机中C语言少见的类型  大杂烩]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/84336016</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/84336016</guid><author>panda5_csdn</author><pubDate>Thu, 22 Nov 2018 16:40:55 +0800</pubDate><description><![CDATA[C语言编程过程中，有很多少见的类型，现在在这里做个汇总，加深印象；

 


1.             __类型  ( __IO、__O)


 __IO一般是  volatile      表示可读可写

volatile 就是为了禁止编译器对其优化。

在cortex-M3内文件中，就这样定义，如下：


2.   inline  内联修饰符 


在c/c++中，为了解决一些频繁调用的小...]]></description><category></category></item><item><title><![CDATA[四张图看懂：FreeRTOS ——抢占式调度]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/84321461</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/84321461</guid><author>panda5_csdn</author><pubDate>Wed, 21 Nov 2018 15:02:56 +0800</pubDate><description><![CDATA[本文部分转自https://www.cnblogs.com/yangguang-it/p/7157072.html



FreeRTOS 操作系统是设置的数值越小任务优先级越低



]]></description><category></category></item><item><title><![CDATA[计算机网络基础知识  个人总结（一）]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/84281176</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/84281176</guid><author>panda5_csdn</author><pubDate>Tue, 20 Nov 2018 10:51:51 +0800</pubDate><description><![CDATA[由于本人是个“业余选手”，自己非系统的学习计算机网络基础知识，所以总是容易忘记内容；比如IP的ABC类，还需要总结一下，加深印象才行；同时感觉，学习要积极，要幽默有趣地学习；

 

这类基础知识的博客很多的，推荐一个总结的挺好，又有图片的：

http://www.cnblogs.com/maybe2030/p/4781555.html

 

如果你是小白，看完上面的博客内容，肯定是一团浆糊，...]]></description><category></category></item><item><title><![CDATA[BCD和十进制转换]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/84255602</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/84255602</guid><author>panda5_csdn</author><pubDate>Mon, 19 Nov 2018 16:38:46 +0800</pubDate><description><![CDATA[总是忘记BCD码的含义，感觉还是有必要手写一些加深印象；这篇文档主要就是知道BCD的使用意义，感觉之前学的都是知道一个BCD码，但是不知道用来干什么的。

 

对于嵌入式程序员而言，一般BCD码用于串口通讯(个人认为，希望各位补充)，或者数据处理；而一般的串口通讯都是采用16进制的格式传输的；有些为了表示更清楚，所以采用BCD码代替16进制来表示10进制；

 

例如： 0x23  如果正常用...]]></description><category></category></item><item><title><![CDATA[【嵌入式菜鸟成长记——逃不过的汇编指令1】终究逃不过的ARM汇编语言]]></title><link>https://blog.youkuaiyun.com/panda5_csdn/article/details/82870123</link><guid>https://blog.youkuaiyun.com/panda5_csdn/article/details/82870123</guid><author>panda5_csdn</author><pubDate>Thu, 27 Sep 2018 17:21:24 +0800</pubDate><description><![CDATA[大学里学了微机原理，里面学了汇编指令，考完试后就忘得一干二净；后面汇编也用的少，以至于都完了；以为自己学的C语言，用不到汇编的；虽然经常见到，但是都果断跳过，直到要学习FREERTOS，不得不接触ARM内核，不得不学习汇编；哎，终究逃不过去的，都是自欺欺人罢了；

 

现在将自己遇到的汇编都记录下来，一点点增加自己的汇编指令吧；

 

想想为什么自己这么不喜欢汇编呢，其实最主要的原因就是太多了...]]></description><category></category></item></channel></rss>