- 博客(42)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 CRC理解
CRC是一个数据验证单元,可以用于验证flash中的程序,传送的tcp,udp>数据包,串口传送的modbus信息。保证这些信息在传送过程中没有丢失,或者发生错误。2. CRC怎么工作的啦?我的理解是这样的。CRC使用时必然伴随一个数据发送端和一个数据接收>端。发送端通过软件或者支持CRC计算的硬件单元,计算出要发送数据的CRC校验值。再将这个检验值添加到要发送数据的结尾,一起发送给接收端。接收端接收到完整的数据后,对数据以同样的方法进行CRC计算。
2023-07-08 12:09:13
149
原创 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
112
原创 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
927
原创 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
778
原创 systemd代替xinetd
systemd替代xinetd背景systemd已经逐步取代了init,现在又在蚕食xinetd这种init的衍生品,感觉cron也难逃魔爪。systemd在各大新的发行版上也是无往不利,感觉今后的服务器必将成为一大重器。但国内这方面资料还是比较少,大多都是官方手册的简单变换,少有见到一个真的实际使用。刚好手上有一个老的用xinetd的socket服务程序,手贱把服务器搞挂了,直接升了最新的fedora-server。系统默认不安装crond,远程服务器包里甚至完全没有xinetd程序。无赖只能自己编译
2021-10-10 21:41:18
811
原创 stm32cubeide驱动LCD1602显示屏
STM32驱动LCD1602硬件连接关系STM32CUBEIDE设置代码项目设置最后运行硬件连接关系LCD1602STM32VCCVCCGNDGNDVOVCC-滑动变阻RSPB1RWPB2(BOOT1)EPB0D0 ~ D7PB8 ~ PB15APA8KPA11这是普中科技的C51开发板,送了一个stm32f103c6的小核心板,C51开发板上有个LCD1602的接口就直接使用了。STM32CUB
2021-06-15 23:48:33
3550
8
原创 神神叨叨
神神叨叨思考2维和3维说起都知道一个3维的物体在2维中就是一个平面。这和选取的二维坐标轴有关,选取坐标轴方向不同,得到的平面图形也会不同。也就是"横看成岭,侧成峰"。不同的角度选取坐标系面积也会不同,因此2维世界观察3维物体是存在无数种可能的,也就是我们普遍认为的"线段上有无线多个点"。动和静一个二维坐标上画一条直线,二维直观的感觉是一条线断。再画一个点。如果其中一条坐标>是时间轴,结果会怎么样。给点的感觉就会是线有可能是运动的,或者是静止的。这个只取>决于点和线的相对位置。如果点正好在
2021-06-12 08:09:42
177
原创 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
988
原创 C关于映射的思考
学习《数据结构和算法分析》第五章散列的时候,后面的开放寻址:线性探测、平方探测、再散列。感觉都越来越复杂,于是就有个想法是可不可以使用简单的分离链接发直接散列,做映射。书中明确说了分离散列慢的根源在于每次插入的内存分配,也就是malloc调用。那可以一次malloc多几个空间,不够了再分配吗?当然可以glib都有现成的动态数组,于是就有了用动态数组做hash table和mapping的想法。按照理论设想使用空间肯定能超过未使用空间,动态数组可以满了再分配空间。只要预先估计数据大小合适每次查询key值或
2020-10-22 16:56:12
148
原创 暴力更改hex文件实现自动烧写stm32程序
STM32自动化烧写目的与适用范围项目已经固定,每次烧写程序只会更改很少量的信息。比如设备编号,日期等信息,但每台设备这些信息都是不相同的。第次更改设备必须打开keil更改编号,再次编译,烧写,过程繁琐。于是就想可不可以直接更改hex文件,改好后直接烧写进板子拉?使用到工具pythonpylink(python实现的一个stm32模块)JLinkARM库(这个是C/C++实现的底层库)步骤找到不同设备号更改时hex改变位置使用python实现自动更改使用pylink烧写进去
2020-10-22 16:03:08
2865
原创 鸿蒙应用猜测
鸿蒙提到的几个名词1.微内核2. 分布式任务调度3. 分布式数据管理4. 硬件能力虚拟化5. 分布式软总线6. Iot设备linux和鸿蒙出现原因(个人猜测)linux: Unix收费鸿蒙: 米国打压(小部分原因),5G时代万物互联到来鸿蒙出现前我们用的产品摩拜单车手机充值电表,各种自动发数据的设备越来越多的设备物品的联网需求先如今物联网现状1.设备层都是使用单片机C51,STM32等芯片实现实际功能2. 要在基本功能的基础上加入联网就没有那么容易了,要不就是直接>
2020-09-23 16:27:11
509
原创 VIM 开发C/C++项目
VIM开发C项目TODO 插件安装 自动补全 代码检查 代码注释 代码折叠插件安装Github找到vim-plug.Installcurl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vimSet#~/.vimrc中加入以下内容call plug#begin('~/.vim/plugg
2020-05-08 22:24:22
715
2
原创 类的指导准则
类的质量:一:抽象数据类型 1.你是否把程序中的类都看做是抽象数据类型了? 2.是否从这个角度评估它们的接口了?二:抽象 1.类是否有一个中心目的? 2.类的命名是否恰当?其名字是否表达了其中心目的? 3.类的接口是否展现了一致的抽象? 4.类的接口是否能让人清楚明白地知道该如何用它? 5.类的接口是否足够抽象,使你能不必顾虑它是如何实现其服务的?...
2019-11-18 08:33:40
104
用Vim打造一个简单IDE系统
2020-09-03
github.md-建立自己的github服务器
2020-08-26
YouCompleteMe设置头文件问题
2020-05-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人