嵌入式
文章平均质量分 79
王者级废铁
博客就是备忘录,这里主要记录一些学习的内容或者总结
展开
-
Modbus协议介绍
ModbusASCII有开始字符(和结束字符(CR LF),可以作为一帧数据开始和结束的标志,而ModbusRTU没有这样的标志,需要用时间间隔来判断一帧报文的开始和结束,协议规定的时间为3.5个字符周期,就是说一帧报文开始前,必须有大于3.5个字符周期的空闲时间,一帧报文结束后,也必须要有3.5个字符周期的空闲时间否则就会出现粘包的情况。CRC值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较,如果这两个值不相等,就发生了错误。原创 2024-03-30 14:01:00 · 1149 阅读 · 0 评论 -
ESP32-S3上手开发
然后将examples\get-started\hello_world复制到某个位置,也可以不进行复制,直接编译烧写也可以。从上面图中可以看到,N16R8这里使用了外扩16M的flash,外扩8M的psram。根据芯片手册还可以知道psram为Octal模式。然后启动windows的esp-idf cmd。这里使用的乐鑫的esp32s3,N16R8。根据前面知道了flash为16M。这里我为了方便直接放在了D盘。设置psram为octal。最后按s键保存,按q键退出。选中设置为片外ram。原创 2023-10-12 13:47:29 · 2830 阅读 · 0 评论 -
linux下C程序查看内存剩余大小
嵌入式linux中很多内存资源都比较小,所以很多程序中在malloc时就需要提前知道内存剩余的大小。下面是一种调用 sysinfo接口来实现。转载 2023-06-06 18:33:58 · 450 阅读 · 0 评论 -
linux下绑定任务到特定的CPU
如果要设置已存在的线程的亲和性,就可以考虑使用pthread_setaffinity_np,尽管pthread_setaffinity_np是不可移植的,是gnu独有的。与使用sched_setaffinity设置线程亲和性相比,使用pthread_setaffinity_np的另一个好处就是,可以在线程外设置任一线程的亲和性(只要知道pthread_t即可),而sched_setaffinity的gettid,需要在线程函数内调用。注:np的意思为不可移植,即在非gnu的系统上,应该是没有这个接口的。转载 2023-06-06 09:44:13 · 1768 阅读 · 0 评论 -
在嵌入式linux板子上搭建NFS服务器
使用portmap+nfs-utils的工具在hi3536的linux系统上搭建nfs服务器,使用VM虚拟机中的ubuntu作为客户端挂载,进行文件的读写。原创 2023-05-31 18:22:00 · 686 阅读 · 0 评论 -
uboot下的mw写内存和md显示内存命令以及nand命令
注意,网络地址环境变量的设置要根据自己的实际情况,确保主机和开发板的 IP地址在同一个网段内,比如我现在的开发板和电脑都在 192.168.0.1 这个网段内,所以设置开发板的 IP 地址为 192.168.0.10,我的 windows的 主机的地址为 192.168.0.40,因此 serverip 就是192.168.0.40。b\w\l的意思同上,address是要写入内存的地址,value是要写入的值,count是从address开始要写入多少个数,这些都是16进制数。原创 2023-05-31 13:47:50 · 2283 阅读 · 0 评论 -
linux驱动和应用的数据交互ioctl函数和copy_from_user、copy_to_user
驱动程序运行在内核空间中,给出的地址也是在内核空间中的地址,运行在用户空间下的用户程序即使拿到这个地址,也不能访问内核空间。除此之外,还有put_user()函数和get_usr()函数,在用户层和内核层拷贝单个数据时,比如某个int型变量,则优先使用put_user()和get_user()函数;(2)在拷贝大量数据时使用copy_to_user()和copy_from_user()函数,拷贝单个数据时,比如某个int型变量,则优先使用put_user()和get_user()函数;原创 2023-05-29 16:54:57 · 2493 阅读 · 2 评论