- 博客(12)
- 收藏
- 关注
原创 记录一下结构体中数组过大,然后函数中直接通过拷贝的方式传参导致栈溢出的问题
函数参数中定义的变量属于局部变量,而我一开始采用拷贝方式,这就相当于我定义了一个600多字节的局部变量,我定义的栈只有512字节,所以导致了栈溢出,以后结构体传参一定要用指针来传递,不然很容易忘记这些点。之后一旦涉及到485,就会死机,一开始半天都想不明白为什么,但应该是内存泄露导致的。后面在段错误中打印,发现死机的原因就是进入了段错误,于是通过查询相关资料,发现了问题所在,如下图。事情的起因是想把485接收缓冲区的空间放大,所以把485相关的结构体改大了,如图。
2025-02-12 10:15:53
173
原创 关于freertos的vPortFree函数出现断言的问题
事情的起因是使用freertos时程序出现了问题,所以就想看看是不是哪个任务的堆栈空间没给够还是咋回事,就想用freertos的vTaskList()函数看一下,一开始给task_info_buf的内存是200,然后就出现了上图两个断言,后面我把申请的内存给到1000,这时就没有断言了,说明这个断言是由于申请的空间不够,导致了内存泄露,从而引发了断言。释放空间时应该是runtime_info的空间释放失败了,因为task_info_buf内存泄露占用到了runtime_info的空间。
2025-02-12 10:08:25
131
原创 记录一下使用max485芯片进行485转发的坑
因为是第一次进行485的开发,之前进行485验证的时候,并没有出现这个问题(在另外一块板子上,不知道是不是芯片差异导致的),然后原封不动的将之前验证的发送代码搬过来,就出现了这个问题,具体的注释有些。2.我跟1中的博主遇到的问题相似,但场景不同,我在普通的发送中也出现了丢失最后两个字节的问题,如下图。
2024-12-09 10:37:01
264
原创 关于Freertos任务调度前有中断导致调度失败的记录
事情的起因是想在任务调度之前,调用display_data_init()发数据去初始化串口屏,但是发现这样做会导致单片机卡死,卡在系统调度那个函数里面,具体的不好通过打断点去查,但可以肯定的时候任务调度失败了,后面的任务都没初始化成功。最后想到,当我发送数据给串口屏的时候,串口屏会返回数据,这时候会进入串口接收中断,所以我就想着加一个小延时跳过接收返回数据这会产生中断的过程,于是程序继续跑起来了。仅仅做一个记录,顺便能帮助有同样困惑的小伙伴,如果有大佬知道这个bug的前因后果的,恳请告知一下。
2024-11-30 11:54:10
314
1
原创 极海APMF030C8T6控制TM1650数码管驱动芯片
首先我是借鉴TM1650数码管驱动芯片-优快云博客的,感谢作者的分享,我就是移植了一下tm1650.ctm1650.htm1650_config.h
2024-04-18 11:46:56
344
2
原创 记录一下本地文件夹如何git的方式
突然想用git工具来保存单片机代码,经过查阅各种资料,最后成功连接上了github。首先大部分都是参考了。
2024-04-15 10:09:02
1999
1
原创 GD32/STM32在下载时遇到的No Algorithm found for: 08000000H - 08000F8FH问题
之前为了图方便,只是想测试IAP程序到APP程序的跳转,所以写完IAP程序后就直接把IAP文件夹复制,弄出了APP文件夹里面包含了IAP工程的所有东西,包括代码和KEIL工程文件,只是稍加修改。这个地方的名字跟IAP的一样,虽然所在的文件夹不一样,但是我还是怀疑就算不是同一个文件夹,但是它们还是同一个文件,于是我新建了一个工程,代码跟原先的APP里的没有任何区别,然后就下载成功了。
2023-11-06 15:11:47
1365
原创 gitblit免密登录记录
将密匙复制到gitblit用户中心的ssh keys中添加ssh key,成功后它会记录该密匙以及你的机器名称,做完这些就可以免密git了。如果git仓库时是使用ssh连接的话,直接去.ssh中找到id_rsa.pub,这个文件的生成方法可以参考我的另一篇记录。然后输入cat id_rsa.pub。
2023-10-19 14:50:25
151
1
原创 关于malloc的意义
例如现在我有一个串口数据要传输,但它的字节长度不是固定的,有可能很长有可能比较短,那么这个时候用数组的话很可能会出现浪费空间或者空间不足的情况,比如我定义一个1024字节的char型数组,char buffer[1024],但现在要传输的数据长度只有10个字节,那么剩余的空间就全部被浪费了,如果传输的数据长度大于1024又出现长度不够的情况,所以这时候就引入了malloc这个函数。这里只是个人理解的笔记,若要具体学习可去查询。
2023-08-09 14:14:02
209
1
原创 如何使用VScode使用ssh连接远程服务器不需要输入密码直接登录
右键点击id_rsa然后下载到本地的用户文件夹下,如果你有多个服务器连接的需求,需要建立多个文件夹来保存id_rsa文件。第二、在VScode的插件中安装ssh连接工具,一般会有几个伴生工具,它会自己下载的,别删除了就行。这两个分别是ssh管理器以及连接处,点击左下角那个绿色的玩意, 会弹出一下界面。可以看到有id_rsa和id_rsa.pub两个文件生成,接着我们再输入命令。可以看到它保存的路径,但它是一个隐藏文件,使用ls -a命令就可以显示了。User 要连接的服务器上的用户名。
2023-08-04 10:30:38
6316
5
原创 正点原子f407v3学习 问题1
如图这时需要去手动修改core clock的频率 改成跟开发板一样的频率就行,例如我的是stm32f407zgt6,主频为168Mhz。在使用stlinkv2+mdk_debug进行仿真时出现了仿真时间与实际时间不一样的情况。
2023-06-22 23:36:46
160
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人