- 博客(45)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 CRC理解
CRC是一个数据验证单元,可以用于验证flash中的程序,传送的tcp,udp>数据包,串口传送的modbus信息。保证这些信息在传送过程中没有丢失,或者发生错误。2. CRC怎么工作的啦?我的理解是这样的。CRC使用时必然伴随一个数据发送端和一个数据接收>端。发送端通过软件或者支持CRC计算的硬件单元,计算出要发送数据的CRC校验值。再将这个检验值添加到要发送数据的结尾,一起发送给接收端。接收端接收到完整的数据后,对数据以同样的方法进行CRC计算。
2023-07-08 12:09:13
243
原创 orangepi3lts Timer0和位原子操作
orangepi3lts 的CPU有两个timer定时器,这里使用的是timer0。这里主要包含3个文件,atomic_bit.c是内核驱动,makefile是编译脚本,main.c是测试程序。除了应用timer0几个寄存器知识外,还涉及misc混杂设备知识,IO宏知识,原子位操作知识。废话不多说上文件,第一个atomic_bit.c,加载模块后会自动在/dev/目录下创建atomic_bit_dev混杂设备文件,main.c会打开它用于测试竞态是否有效,timer0计时是否准确,可靠。/*
2022-09-29 22:39:52
143
原创 stm32 makefile烧写调试一条龙
linux 下调试stm32JLink安装网址:https://www.segger.com/downloads/jlink/选择一个版本下载,对于我这个淘宝买的10多元钱的jlink-ob必须要选择低版本的,目前选用的是V6.0。可以选择.deb或.rpm安装。STM32CubeMx生成一个Makefile项目stm32cubemx使用开发环境选makefile就是了程序下载之前写过一个怎么用命令行,一步一步的选择方式,速度,芯片,烧写。在这里这种方法比较麻烦,每次烧写都要选择各种选
2022-03-13 16:59:38
1085
原创 ubuntu ESP8266 RTOS开发入门
为什么用ubuntu而不用windows对linux还算熟悉windows下没有搭建好平台eclipse还是不喜欢用,而且Ai-Thinker还是老版本eclipse魔改ubuntu下配置好了是真丝滑,编绎更快,烧写更方便开发环境# 依赖安装sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial# 编译器下载mkdir ~/espcd ~/espwget
2022-03-11 21:18:23
810
原创 systemd代替xinetd
systemd替代xinetd背景systemd已经逐步取代了init,现在又在蚕食xinetd这种init的衍生品,感觉cron也难逃魔爪。systemd在各大新的发行版上也是无往不利,感觉今后的服务器必将成为一大重器。但国内这方面资料还是比较少,大多都是官方手册的简单变换,少有见到一个真的实际使用。刚好手上有一个老的用xinetd的socket服务程序,手贱把服务器搞挂了,直接升了最新的fedora-server。系统默认不安装crond,远程服务器包里甚至完全没有xinetd程序。无赖只能自己编译
2021-10-10 21:41:18
962
原创 stm32cubeide驱动LCD1602显示屏
STM32驱动LCD1602硬件连接关系STM32CUBEIDE设置代码项目设置最后运行硬件连接关系LCD1602STM32VCCVCCGNDGNDVOVCC-滑动变阻RSPB1RWPB2(BOOT1)EPB0D0 ~ D7PB8 ~ PB15APA8KPA11这是普中科技的C51开发板,送了一个stm32f103c6的小核心板,C51开发板上有个LCD1602的接口就直接使用了。STM32CUB
2021-06-15 23:48:33
3887
8
原创 神神叨叨
神神叨叨思考2维和3维说起都知道一个3维的物体在2维中就是一个平面。这和选取的二维坐标轴有关,选取坐标轴方向不同,得到的平面图形也会不同。也就是"横看成岭,侧成峰"。不同的角度选取坐标系面积也会不同,因此2维世界观察3维物体是存在无数种可能的,也就是我们普遍认为的"线段上有无线多个点"。动和静一个二维坐标上画一条直线,二维直观的感觉是一条线断。再画一个点。如果其中一条坐标>是时间轴,结果会怎么样。给点的感觉就会是线有可能是运动的,或者是静止的。这个只取>决于点和线的相对位置。如果点正好在
2021-06-12 08:09:42
249
原创 ubuntu18.04使用jlnk下载程序
ubuntu使用JLink下载程序 ## JLink安装 1. (JLink官网)[https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack]下载最新的JLink驱动程序。ubuntu使用的是d
2020-12-28 07:27:55
1087
原创 C关于映射的思考
学习《数据结构和算法分析》第五章散列的时候,后面的开放寻址:线性探测、平方探测、再散列。感觉都越来越复杂,于是就有个想法是可不可以使用简单的分离链接发直接散列,做映射。书中明确说了分离散列慢的根源在于每次插入的内存分配,也就是malloc调用。那可以一次malloc多几个空间,不够了再分配吗?当然可以glib都有现成的动态数组,于是就有了用动态数组做hash table和mapping的想法。按照理论设想使用空间肯定能超过未使用空间,动态数组可以满了再分配空间。只要预先估计数据大小合适每次查询key值或
2020-10-22 16:56:12
181
原创 暴力更改hex文件实现自动烧写stm32程序
STM32自动化烧写目的与适用范围项目已经固定,每次烧写程序只会更改很少量的信息。比如设备编号,日期等信息,但每台设备这些信息都是不相同的。第次更改设备必须打开keil更改编号,再次编译,烧写,过程繁琐。于是就想可不可以直接更改hex文件,改好后直接烧写进板子拉?使用到工具pythonpylink(python实现的一个stm32模块)JLinkARM库(这个是C/C++实现的底层库)步骤找到不同设备号更改时hex改变位置使用python实现自动更改使用pylink烧写进去
2020-10-22 16:03:08
3204
用Vim打造一个简单IDE系统
2020-09-03
github.md-建立自己的github服务器
2020-08-26
YouCompleteMe设置头文件问题
2020-05-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人