- 博客(329)
- 资源 (8)
- 收藏
- 关注
转载 在VSCode中打开来自远程ssh主机的文件
在VSCode中打开来自远程SSH主机的文件是通过VSCode的远程开发扩展实现的。远程开发扩展允许开发人员在本地的VSCode编辑器中访问和编辑远程主机上的文件。
2025-02-10 10:01:07
197
转载 编译乱序 vs 执行乱序
现代高性能编译器在目标码优化时都具备对指令进行乱序优化的能力,编译器可以对访存指令进行乱序,减少逻辑上不必要的访存,以此来尽量提高Cache命中率和CPU的Load/Store单元的工作效率打开编译优化后,看到生成的汇编码并没有严格按照代码的逻辑顺序,这是正常现象。
2025-01-24 11:03:02
22
转载 ARM64虚拟内存
address字段占用中间36位(bit[47:12], 以4kb为粒度则地址的低12bit均为0,无需存放,因此address为实际48位物理地址的高36位),如果我们使用大内存页(即转换使用的最后一级页表<3),则address字段的低位字节将被忽略,具体来说,如果使用level 2级别页表作为最后一级,其一个页表项指向2MB的内存页,因此address字段中低9bit被忽略;目前64位架构的MMU通常使用4级页表(level 0,1,2,3),支持最大48位有效地址。使用的虚拟内存最大长度。
2025-01-23 19:06:03
51
转载 原理和实战解析Linux中如何正确地使用内存屏障
本文对Linux内核的内存屏障的原理和用法进行一些分析和实战,它并未覆盖内存屏障的全部知识,但是应该可应付工程里面90%以上的迷惘和困惑。由于作者水平有限,文中疏漏与错误在所难免,恳请读者朋友们海涵。本文完成之时,北半球正在告别烈日炙烤的夏季,南半球即将迎来姹紫嫣红的春天,愿所有人都有一个美好的未来。参考文献【1】【2】【3】【4】
2024-12-17 20:44:05
76
转载 H265/HEVC
H.265又称为HEVC(全称High Efficiency Video Coding,高效率视频编码,本文统称为H.265),是ITU-T H.264/MPEG-4 AVC标准的继任者。2004年开始由ISO/IEC Moving Picture Experts Group(MPEG)和ITU-T Video Coding Experts Group(VCEG)作为ISO/IEC 23008-2 MPEG-H Part 2或称作ITU-T H.265开始制定。
2023-06-07 11:13:37
4455
转载 【from 一只嵌入式爱好者】Linux字符设备驱动详解七(“插件“设备树实现RGB灯驱动)
将led.dts编译为rgb.dtbo插件设备树,将传统设备树和插件设备树都加载到内核中,加载完成后就使用命令查看设备树,此时可以在设备数中看到新增了rgb_led节点。或者 ls /proc/device-tree再编译dts_led.c源文件为dto.led.ko内核模块并加载进内核。这时就有了/dev/rgb_led节点,最后向/dev/rgb_led节点写入数据就能控制rgb灯了。
2023-05-18 10:01:57
379
转载 【from 一只嵌入式爱好者】Linux字符设备驱动详解六(设备树实现RGB灯驱动)
DTS(device tree source):设备树源文件,ASCII 格式DTC(device tree compiler):设备树编译工具,DTB(device tree blob):二进制设备树。设备树使用uboot负责加载到内存,内核解析使用。
2023-05-18 09:50:59
172
转载 【from 一只嵌入式爱好者】Linux字符设备驱动详解五(使用platform虚拟平台总线)
通过使用platform虚拟平台总线,实现了软件与硬件代码分离。
2023-05-18 09:27:23
206
转载 【from 一只嵌入式爱好者】Linux字符设备驱动详解四(使用自属的xbus驱动总线)
创建自属的xbus驱动总线实现软件与硬件代码分离,本节尚未添加硬件接口代码,是为后面使用platform虚拟平台总线建立基础。
2023-05-18 09:21:01
223
转载 【from 一只嵌入式爱好者】Linux字符设备驱动详解三(使用class)
本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。通过使用class完成硬件设备分类管理。
2023-05-18 08:59:01
168
转载 【from 一只嵌入式爱好者】Linux字符设备驱动详解二(使用设备驱动模型)
本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。linux系统通过sysfs体现出设备驱动模型sysfs是一个虚拟文件系统(类似proc文件系统)目录对应的inode节点会记录基本驱动对象(kobject),从而将系统中的设备组成层次结构用户可以读写目录下的不同文件来配置驱动对象(kobject)的不同属性通过使用驱动模型,我们就不用再手动调用mknod命令创建设备文件(节点),本节演示并未创建/dev/目录下的设备文件,只是在/sys/目录下演示设备驱动的框架。
2023-05-17 17:00:40
127
转载 【from 一只嵌入式爱好者】Linux字符设备驱动详解
很久没有认真写一篇博客了,刚好最近学习了Linux字符设备驱动,好记性不如烂笔头,当然是要抓紧记下来,在开始之前安利一位师弟写的几篇博客,写得很不错。本文主要来自正点原子、野火Linux教程及本人理解,若有侵权请及时联系本人删除。从单片机到ARM Linux驱动——Linux驱动入门篇Linux字符设备驱动开发(2)——让开发板上的灯闪烁完成上面三步后就完成了LED字符设备的驱动编写,其他的字符设备可参考此驱动。
2023-05-17 10:00:44
160
转载 万字长文解读AUTOSAR完整架构及AP特性
本文主要内容分为两章节。第一章节简要介绍了AUTOSAR的软件架构,设计理念以及方法论,对Classic Platform和Adaptive Platform做了简单的比较。第二章主要介绍了Adaptive Platform的特性。AUTOSAR(AUTomotive Open System ARchitecture)是汽车和软件行业领先公司的全球合作联盟,为智能移动开发和建立标准化的软件框架以及开放的E/E系统架构。
2023-05-16 17:40:33
8072
转载 从源码理解智能指针(一)——auto_ptr、unique_ptr
};auto_ptr和unique_ptr都是独占式指针,auto_ptr为了实现“独占式”语义,拷贝构造和赋值重载会偷偷地把原对象的资源给拿走,但是不会给用户任何提示,这是很危险的,并且拷贝和赋值本身的语义就不符合资源的独占原则。
2023-04-22 20:06:08
191
转载 posix是什么都不知道,还好意思说你懂Linux?
POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),
2023-04-06 11:45:49
388
1
转载 关于可重入性函数
可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入 函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。
2023-04-04 11:35:28
101
转载 bss段、data段和text段
在采用段式内存管理的架构中(比如intel的80x86系统),一个程序本质上都是由 bss段、data段、text段三个组成的。比如,在C语言程序编译完成之后,已初始化的全局变量保存在.data 段中,未初始化的全局变量保存在.bss 段中。发现程序2编译之后所得的.exe文件比程序1的要大得多。
2023-04-04 11:10:49
435
转载 初步认识迭代服务器和并发服务器
也就是说,这个进程是一个一个处理各个客户端发来的连接的,比如一个客户端发来一个连接,那么只要它还没有完成自己的任务,那么它就一直会占用服务器的进程直到处理完毕后服务器关闭掉这个socket。这样每来一个客户端,服务器就克隆一个自己去处理请求,这样主进程就一直处于监听状态而不会被阻塞。额,我想讲的重点不是这里,重点是代码第12行!
2023-04-04 10:59:10
187
转载 状态机的两种写法对比
上面横竖两种写法的代码片段,实现的功能完全相同,但是,横着写的效果明显好于竖着写的效果。竖着写隐含了优先级排序(其实各个事件是同优先级的),排在前面的事件判断将毫无疑问地优先于排在后面的事件判断。这种if/else if写法上的限制将破坏事件间原有的关系。而横着写不存在此问题。由于处在每个状态时的事件数目不一致,而且事件发生的时间是随机的,无法预先确定,导致竖着写沦落为顺序查询方式,结构上的缺陷使得大量时间被浪费。
2023-04-04 10:52:45
254
转载 优秀程序员不得不知道的20个位运算技巧
一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编程之美》求“1的数目”时,我才开始觉得位运算是如此之美,后来读到 《Hacker’s Delight》,感慨到Henry S.Warren把位运算运用的如此神出鬼没,很多程序都十分精妙,我觉得在一个普通的程序中大量运用这样的代码的人简直是疯了!
2023-04-04 10:39:33
96
转载 rosspin、rosspinOnce及多线程订阅
什么时候用ros::spin()和ros::spinOnce()呢,如果仅仅只是响应topic,就用ros::spin()。因为在一些点云处理的程序中,出现多个订阅者订阅同一个topic,由于内部处理的时间不同,最后造成显示界面出现卡顿,现象就是用鼠标拖动点云的视角会感觉非常卡,不顺畅。而下面的打印输出不会更新,相当于只执行了一次,但是它会不断处理ROS 的message queue(下图右边的subscriber 开头的打印函数只调用了一次,然后一直响应订阅的消息)。断开连接,通知延后了一分多钟。
2023-03-29 14:34:51
531
转载 NMEA-0183
NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association )为海用电子设备制定的标准格式。业已成了GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services)标准协议。序号命令说明最大帧长1$GPGGA卫星定位信息722$GPGSA卫星PRN数据653$GPGSV可视卫星信息2104$GPRMC推荐定位信息705$GPVTG。
2023-03-29 11:35:53
213
USB TO TTL (PL-2303)在Win8.1驱动
2017-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人