自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 问答 (1)
  • 收藏
  • 关注

原创 C语言大小端数据转换函数接口

大小端数据转换函数

2022-09-13 20:02:18 715 1

原创 CAN总线的学习总结

CAN总线的启源CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通..

2022-02-22 17:29:29 2253

转载 【转载】导航定位技术方案

早在15世纪,当人类开始探索海洋的时候,定位技术也随之催生。当时的定位方法十分粗糙,就是是运用航海图和星象图以确定自己的位置。随着社会的进步和科技的发展,定位技术在技术手段、定位精度、可用性等方面均取得质的飞越,并且逐步从航海、航天、航空、测绘、军事、自然灾害预防等“高大上”的领域逐步渗透社会生活的方方面面,成为人们日常中不可或缺的重要应用——比如人员搜寻、位置查找、交通管理、车辆导航与路线规划等等……总体来说,定位可以按照使用场景的不同划分为室内定位和室外定位两大类,因为场景不同,需求也就不同,所以

2022-02-14 17:41:16 1534

原创 PYTHON画地图

import matplotlib.pyplot as pltimport matplotlib.ticker as tickerxx = []yy = []th = []def OutputCoordinate(x,y,th): strlist="x=%.2f,y=%.2f,th=%.2f"%(x,y,th) # PointTipText=plt.text(x,y*1.02,strlist, ha='center', va='bottom', fontsize=10)

2021-12-06 14:52:11 3583 1

原创 RTThread知识点整理(一)内核介绍

1.RT-Thread 内核架构图实时内核的实现包括:对象管理、线程管理及调度器、线程间通信管理、时钟管理及内存管理等等,内核最小的资源占用情况是 3KB ROM,1.2KB RAM。2.RT-Thread 启动流程rtthread_startup() 函数是 RT-Thread 规定的统一启动入口。一般执行顺序是:系统先从启动文件xxx.s开始运行,然后进入 RT-Thread 的启动函数 rtthread_startup() ,最后进入用户入口函数 main()。rtthread_startup

2021-12-02 13:42:19 3235

转载 嵌入式Linux下bootloader/U-boot详解

嵌入式Linux软件系统架构图:软件程序开发中,从下往上每一次的作用依次为:Bootloader:将硬件初始化,并将内核引导起来;Linux Kernel:定制、裁剪之后的Linux内核;根文件系统:提供文件系统,更好的使用存储空间;设备驱动:完成设备操作,并向上层软件提供设备的调用接口;应用程序:Linux系统编程、网络编程、shell编程、图形界面编程等等;1.什么是bootloader/U-boot(1)uboot的本质就是一个裸机程序,是bootloader的一种,和我们裸机全集中

2021-12-01 14:36:07 1250

转载 RTOS线程优先级反转

(1)什么是优先级反转简单从字面上来说,就是低优先级的任务先于高优先级的任务执行了,优先级搞反了。那在什么情况下会生这种情况呢?假设三个任务准备执行,A,B,C,优先级依次是A>B>C;首先:C处于运行状态,获得CPU正在执行,同时占有了某种资源;其次:A进入就绪状态,因为优先级比C高,所以获得CPU,A转为运行状态;C进入就绪状态;第三:执行过程中需要使用资源,而这个资源又被等待中的C占有的,于是A进入阻塞状态,C回到运行状态;第四:此时B进入就绪状态,因为优先级比C高

2021-08-02 11:36:31 579

原创 【windows系统】VSCode+gdb+gdbserver调试方法

1、准备arm格式的gdb及gdbserver工具。一般交叉编译工具链里都包含有,如:2、创建vscode工程的launch.json文件并修改。3、把gdbserver传到开发板的/usr/bin路径下。4、启动gdbserver调试开发板上的程序。5、启动pc上的vscode工程的gdb即可进行调试。...

2021-07-08 11:02:43 2727 2

原创 LINUX操作系统下搭建thttpd+CGI网络服务器

1.环境介绍1)本次因为项目原因需要在RK3399平台下,搭建一个网络服务器,用于通过局域网指定IP访问设备,把设备端数据上传到网页显示对应信息,thttp服务器单独进程运行。2)搭建服务器之前需要了解什么是CGI、CGI的运行机制,以及如何通过CGI进行数据通信。3)本文参考https://blog.csdn.net/evenness/article/details/16984197,同时增加部分操作说明2.下载服务器源码压缩包官网下载http://www.acme.com/softw

2020-11-12 17:26:43 775

原创 vs code linux版本debug调试模式设置设配置

1.下载vs code应用,根据不同的发行版本下载对应安装包,Ubuntu下载deb安装包2.安装完成之后,安装c/c++插件(快捷键ctrl +shift + x),搜索框输入c/c++,安装如图插件3.在自己的工作目录下,创建一个需要编译的文件夹,导入需要调试的c/c++文件4.使用VS CODE打开刚刚创建的工程文件夹5.配置task文件(可选,如果想自动生成可执行文件,需要配置如下)1)快捷键ctrl +shift + p,打开命令面板,搜索Configure Tasks,点

2020-09-18 14:23:03 1921

原创 git bash 首次安装或者 git clone 之后报ermission denied, please try again处理方案

1.首先,配置git用户名和用户邮箱(注意双引号)git config --global user.name "xxxxx" ///用户名git config --global user.email "xxxxx@xx.com" ///github绑定的邮箱账号2.配置完成后生成秘钥ssh-keygen -t rsa -C "xxxx@xxxx.com" ///刚刚配置的邮箱此时在用户目录下会生成两个文件id_rsa 和 id_rsa.pub3.查询密匙linux系统...

2020-07-18 14:35:21 380

原创 NotePad++使用技巧(持续更新)

NotePad++使用技巧1.正则表达式删除或替换某行某字符前后的某行数据删除s之后的所有字符用:s.*$删除s之前的所有字符用:^.*s2.正则表达式删除或替换某行某字符前后的全部数据删除A之后的所有字符用:A.*$删除A之前的所有字符用:^([^s]*)A3.列操作shift+alt+方向键或alt+鼠标左键...

2020-04-16 11:08:11 952

原创 C语言单片机栈、堆、堆栈的区别(仅供参考)

计算机C语言中各个变量的存放区域:代码区(CODE): 存放函数代码;静态数据区(DATA): 存放全局变量/静态变量;堆区(HEAP): 是自由分配区,存放动态数据,malloc()申请的空间就是堆区的;栈区(STACK): 存放临时/局部变量。1.数据结构的堆和栈1)栈:只能在一端进行插入和删除的操作的线性表。2)堆:堆的物理存储结构是一维数组,逻辑存储结构是完全二叉树...

2019-07-30 13:43:35 1488

翻译 鸟哥的LINUX私房菜第四版第12章shell编程(未完)--学习笔记(centos 7.x)

12.1shell脚本的命令执行1.命令从上到下,从左到右执行2.命令的使用方法和第四章一致3.多出的空格和空白行将被忽略,tab产生的空白同样是为空格4.读取到回车信号就开始执行该命令5.如果一行放不下可以用符号\回车扩展至下一行6.注释内容使用#,#后面的数据被忽略7.shell脚本执行必须具备rx权限,使用绝对路径或者相对路径来执行脚本8.将脚本路径加入到PA...

2019-06-27 15:12:04 217

翻译 鸟哥的LINUX私房菜第四版第10章认识与学习BASH--学习笔记(centos 7.x)

10.1 硬件、内核、shell关系1.用户通过shell将命令传递给内核,让内核可以控制硬件来准确无误的工作。2.应用程序是用户和内核的接口,又称为shell程序3.shells一般存储文件路径/etc/shells10.2BASH shell 的优点1.历史命令记录 :保存的路径/home/.bash_history,系统注销之前才会保存到这个文件中,系统运行时保存在内...

2019-06-13 20:09:15 177

翻译 鸟哥的LINUX私房菜第四版第9章vim程序编辑器--学习笔记(centos 7.x)

9.1 VI的使用1)vi一般包括三种模式:一般命令模式(可编辑模式)、编辑模式(不可编辑,默认模式)、命令行模式(不可编辑,数据的保存、查找退出等)2)切换的方式:命令模式可以切换到其他两个模式(按下i等切到编辑模式或:等切换到命令行模式),命令行模式只能切换到命令模式(按ESC),编辑模式只能切换到命令模式(按下ESC)9.2 vi的按键说明1、一般命令模式的按键说明,上下左右...

2019-05-31 15:08:52 246

翻译 鸟哥的LINUX私房菜第四版第七章linux磁盘和文件系统管理--学习笔记(centos 7.x)

7.1ext2文件系统特性1.LINUX中的文件权限和文件属性放到inode中,实际数据则放在数据区块中,超级区块中则会保存inode和数据区块的总量、使用量、剩余量等信息。 ...

2019-05-29 17:53:25 220

翻译 鸟哥的LINUX私房菜第四版第六章linux文件和目录管理--学习笔记(centos 7.x)

6.1目录的操作1.绝对路径:从根目录开始写路径(PATH) 相对路径:不是从根目录写起2.操作命令:cd :切换目录 pwd:当前路径(-P显示具体路径) mkdir:建立一个目录 rmdir:删除一个目录3.执行文件路径的变量$PATH:ROOT权限下操作4.不同的用户默认的PATH不同,PATH是可以被修改的6.2文件和目录管理1.文件和目录的查看命令:ls -al...

2019-05-28 14:53:07 302

翻译 鸟哥的LINUX私房菜第四版第五章linux文件权限和目录配置--学习笔记(centos 7.x)

5.1 用户和用户组1.ROOT具有全部文件的用户权限,LINUX每个文件都包含用户(user)、用户组(group)和其他人(others)三种权限。2.一般所有账号的和ROOT的相关信息都是保存在/etc/passwd这个文件中,个人密码则是保存在/etc/shadow文件中,所有的组名记录在/etc/group中5.2文件权限的概念1.文件属性说明:d r-x r-x...

2019-05-27 19:26:39 213

翻译 鸟哥的LINUX私房菜第四版第四章linux系统使用和基础命令--学习笔记(centos 7.x)

4.1首次登陆1.LINUX关机时一定按照正确的步骤关机,否则会导致磁盘数据损坏,为避免这种误操作,一般LINUX主机都会挂载一个UPS(不间断电源)2.在登陆账号时尽量不要直接使用ROOT账号,因为权限最大,很多操作不可逆转,当需要时,再把普通账号转换为ROOT权限会更好。3.LINUX中的隐藏文件只是命名时第一个符号位时小数点“.”,起始。4.Alt+Ctrl+Backspac...

2019-05-27 10:07:01 347 1

翻译 鸟哥的LINUX私房菜第四版第三章linux系统的安装--学习笔记(centos 7.x)

3.1 Centos linux 系统的安装1.当磁盘空间小于2T时,LINUX默认会以MBR的分区表安装LINUX,若想要强制变为GPT需要修改内核安装参数,选择安装第一项,按TAB键切换到最后一行,命令行 在最后加入 inst.gpt2.Centos 以按键方式设置初始化参数3.采用自由分配磁盘空间方便磁盘使用最大化4.文件系统选项1)ext2/ext3/ext4:linu...

2019-05-24 14:29:35 307

翻译 鸟哥的LINUX私房菜第四版第二章主规划和磁盘分区--学习笔记(centos 7.x)

2.1 linux 硬件搭配1.各个组件或设备在LINUX下面都是文件,与WINDWS设备名称的概念不一致2.LINUX发布的发行版都会对默认支持的硬件在HOWTO文件中查询硬件支持情况或到每个发行版官方网站查询(发行版和内核版本不同)。3.LINUX中所有设备都被当成一个文件夹对待,每个设备都有设备文件名。4.Linux系统中几乎所有的硬件设备文件都在"/dev这个目录内...

2019-05-24 09:40:35 160

转载 void和void*的用法总结和注意点

void的字面意思是空类型,void *的意思是空类型指针,void 不是一个真正的类型,我们在声明变量的时候从来不会像下面这样声明:void a;如果我们写了一行这样的代码,某些编译器会直接报错,有些则不会,但也没有任何意义。 void真正的用途在下面两个方面: 对函数返回值的限定 对函数参数的限定    比如,函数没有返回值,那么函数可能会声明成这样...

2018-07-19 13:46:48 519

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除