博文视频摘录

深入理解网络栈

https://blog.csdn.net/qq_24313621/article/details/131757225

直接用IP访问百度会有问题

https://mp.weixin.qq.com/s/EeMcK1pTeCXVShX7kjZ53w

网络调试助手直接连接阿里云(MQTT)

https://www.bilibili.com/read/cv12045128

FreeRTOS实现mqtt客户端

mqtt协议产品化实现-FreeRTOS实现mqtt客户端

[原创]基于FreeRTOS建立MQTT终端设备

FreeRTOS上移植MQTT

解决FreeRTOS移植MQTT时的DEBUG

Linux下应用层操作UART的四种方式(轮询/中断/信号/线程)

https://mp.weixin.qq.com/s/3OADFTBQb0Bt0CH42NEf1Q

C程序中10个与内存有关的常见错误

https://mp.weixin.qq.com/s/zMJZa2mkagzcrGvLBdaYKQ

【网络原理】TCP协议如何实现可靠传输(后包先置处理)

https://blog.csdn.net/weixin_64916311/article/details/131151053

python教程

python3——https://www.runoob.com/python3/python3-tutorial.html

python2——https://www.runoob.com/python/python-tutorial.html
在有C语言的基础上,快速学习python(C语言转战python)(python3)

send_data = [0xA4,0x03,0x08,0x23,0xD2] #需要发送的串口包

Pyhon:串口应用及数据解析过程
python+嵌入式——串口通信篇(收发解包)

python函数指针

Python中定义(声明)结构体

UML时序图绘制

https://blog.csdn.net/Edraw_Max/article/details/115396739

visio绘制时序图

python session和cookie使用

https://blog.csdn.net/weiyi47/article/details/131643458

MQTT 自动重连最佳实践

https://mp.weixin.qq.com/s/IcIYg3E8CLNi9AojvOFlnA

pthread_cancel函数:避免踩坑

Thread线程学习(3) 了解Linux线程中的pthread_cancel()函数

Linux线程(3)——pthread_cancel()取消一个线程

pthread_cancel函数:避免踩坑

linux线程发生段错误,怎么让整个进程退出,pthread_cancel,pthread_killall 段错误
thread变量是全局变量,应该是被自动初始化为零的。也就是说pthread_cancel(0),会引起段错误

使用pthread_cancel终止线程的填坑历程

由pthread_create引起的段错误

线程取消(pthread_cancel)
如果线程处于无限循环中,且循环体内没有执行至取消点的必然路径,则线程无法由外部其他线程的取消请求而终止。因此在这样的循环体的必经路径上应该加入pthread_testcancel()调用.
线程终止的清理工作,成对调用函数:
void pthread_cleanup_push(void (*routine) (void *), void *arg)
void pthread_cleanup_pop(int execute)

线程的取消与清理
如果没有取消点,手动设置一个:void pthread_testcancel(void);
当线程非正常终止,需要清理一些资源。
void pthread_cleanup_push(void (*routine) (void *), void *arg)
void pthread_cleanup_pop(int execute)
举了两个例子:
1、被pthread_cancel取消掉
2、执行pthread_exit

线程退出函数pthread_cancel() 采坑点
博文评论:那请问有没有什么方法能够直接杀死呢,而不是等待执行到系统调用
用pthread_setcanceltype这个函数设置取消方式

线程正常终止pthread_exit,pthread_join,pthread_kill,pthread_cancel,sigwait,sigaddset

理解C中函数调用及内存释放:
malloc 动态分配内存,函数调用结束不会被释放
Malloc内存泄露和内存越界问题的研究:
内存泄露的原因很多,有malloc了内存没free的,有open了文件没close的,有创建了socket和sem没释放的等待。
pthread_join()详解及实验:
阻塞状态,直到B线程结束后,A线程才会继续执行下去
它的内存空间也会被释放(如果被调用线程是非分离的),被释放的内存空间仅仅是系统空间,你必须手动清除程序分配的空间,比如 malloc() 分配的空间

不同接地方式的区分:功率地,逻辑地,数字地,模拟地等

https://blog.csdn.net/qq_32515081/article/details/117195708

C语言——动态内存函数(malloc、calloc、realloc、free)

https://blog.csdn.net/plj521/article/details/132264625

乐鑫环境搭建视频

命令行安装:下载乐鑫官网一键安装工具离线包(1G左右大小,包含所有编译所需组件,非常方便),安装前勾选所有选项(支持乐鑫所有的芯片类型及驱动),一直点击同意(期间会检查电脑环境,需要应用修复时点击一下应用修复),当 esp-idf cmd 终端显示 idf.py build 表示安装成功,如下图。

注意:要和其他开发的小伙伴安装一样版本的,我们安装4.4.3版本,不然编译会提示和官方库数据类型不匹配、没有相应头文件等错误。

在这里插入图片描述

使用:第一次先在esp-idf cmd终端里编译一下,执行指令 code . 跳到vscode里打开代码(图形IDE,也就是说命令行安装也能调出图形IDE功能),选择串口号,自动跳出工程路径,点击一下,点击下面小火苗编译、烧录、监测。

idf.py set-target esp32s3		// 切换芯片环境,视频讲要到example路径下切换
idf.py menuconfig				// 图形化配置
idf.py build					// 编译,生成的bin文件在build文件夹
idf.py flash -p COM86			// 烧录
idf.py monitor -p COM86			// 监测
idf.py flash monitor -p COM86	// 一键烧录、监测
ctrl + ]						// 退出


code .							//调出vscode图形IDE  根目录下输入,这样能打开所有代码  最好到具体的项目下打开,这样才能正常使用图形IDE
ctrl+shift+p  					//vscode调出命令行
	>ESP-IDF: new project 		//通过命令行创建项目
	>>ESP-IDF:add vscode configuration folder//生成.vscode,里面c_cpp_properties.json给出所有头文件路径(解决在其他路径下创建工程找不到头文件的问题)
menuconfig						//点击vscode底部小齿轮,设置参数最终保存到sdkconfig文件里,比如修改wifi账号密码
								//直接改sdkconfig文件不行,执行build会覆盖掉。可以把配置信息拷贝到下面的sdkconfig.default文件里,比如wifi账号密码,这样开机就默认使用这里的配置

https://www.bilibili.com/video/BV1Mv4y1U7x9/?spm_id_from=333.788&vd_source=cc0e43b449de7e8663ca1f89dd5fea7d

https://www.bilibili.com/video/BV1ah4y177mR/?spm_id_from=333.788.recommend_more_video.18&vd_source=cc0e43b449de7e8663ca1f89dd5fea7d

https://www.bilibili.com/video/BV1V24y1T75n/?spm_id_from=333.788&vd_source=cc0e43b449de7e8663ca1f89dd5fea7d

猜你喜欢

转载自blog.csdn.net/zhuguanlin121/article/details/131273790