自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Xueqian E的博客

汽车嵌入式

  • 博客(148)
  • 资源 (1)
  • 收藏
  • 关注

原创 akm7739集成到tinyALSA

之后如果需要到安卓侧,可能需要在编译出内核后再编到安卓部分(比如在编译make脚本后会有参数,接上需要编出的版本ivi/db/ads等)这里可能还有一道工序,当下的项目有一件编译出安卓部分镜像的一键一键编译方式,故而采用一键编译。---- 这文件夹里面的Kconfig一般大多数时候在集成时候不需要动,除非需要它出现在menuconfig里面。----在xxx-tdm.c里面加上#include "akm7739_control.h" ,即主要交互方法。---同时,xxx-tdm.c里面通常。

2025-07-24 11:05:20 307

原创 多域系统里的hypervisor中断的流程

当guest需要shm的时候,直接通过中断找hypervisor要已经由hypervisor映射好了的内存。原则:hypervisor一般是最底层,中断都是先到的hypervisor。

2025-07-15 10:57:39 161

原创 驱动中的设备注册整理

设备注册

2025-06-30 16:11:25 146

原创 外部设备和驱动注册方式的关系整理

适用于最基础的片上外设如硬件总线设备本身如I2C,UART,SPI,PCI等,还有时钟,看门狗,定时器,DMA控制器,电源,ADC/DAC信号转换,GPIO,FLASH闪存,RAM等,还有ARM trustzone(TEE)所需要的加密外设这些。a)从机制上讲,这个匹配过程是由名为"总线"的结构体struct bus_type中的match函数完成的,它这个函数会同时维护两个链表,一个是设备,一个是驱动。通常的代码,都是以main函数开始执行的,但是在内核的驱动代码,都是从probe函数开始的。

2025-06-30 15:24:18 294

原创 TEE和OS的沟通关系

储存上:通过TZASC(TrustZone Address Space Controller)和TZMA(TrustZone Memory Adapter)等组件(仅有使用范围区别),对内存进行安全和非安全区域划分和保护。在外设上,基于APB总线的设备需要AXI-to-APB bridge设备连接,并通过TZPC(TrustZone Protection Controller)提供类似AXI上的NS控制信号。这个控制信号用于区分安全和非安全操作,确保主设备发起的操作在安全上没有违规。

2025-06-29 21:54:08 206

原创 RTOS代码格式要求

【代码】RTOS代码格式要求。

2025-06-28 10:22:47 69

原创 低功耗实现方法思路总结

8.检测IO口的漏电流。即,如果I/O口配置为特殊功能(如I2C、SPI、UART等),确保这些功能在低功耗模式下被正确关闭或配置为低功耗模式。b)软件上,检查进入低功耗模式前的IO口的模式和状态(主要是未使用的I/O口配置为高阻态、禁用内部上拉/下拉电阻、关闭I/O口的中断和事件)。即,如果单片机支持电源域管理,确保I/O口所在的电源域在低功耗模式下被正确管理,例如关闭不必要的电源域。3.如果有低功耗模式的话,某些单片机支持将I/O口配置为低功耗模式,例如关闭I/O口的时钟或进入睡眠模式。

2025-05-15 17:01:06 669

原创 (只了解)神经网络的自我学习(训练)方法之二:线性不可分矢量

2025-05-15 13:20:57 110

原创 BMS项目笔记整理

这里的GOTO模块,其实是一个临时变量,可以自己手动改了,改一个自己喜欢的名字,比如ID1,ID2,这个不会影响它实际最终的去向,这个自定义的ID1,ID2,只是一个临时的指代变量。然后来到Matlab,先在里面找到对应的CAN_TX模版,是一个slx文件(在vehicle network toolbox里面),双击它,进去后点“浏览”,找到打开刚才保存的dbc文件,选择dbc文件里面的具体哪个ID报文即可(因为一个dbc里面可以包含很多个报文,所以我们在设定dbc的时候,报文文件名记得用ID编号)。

2025-03-07 19:35:58 656

原创 (只了解)神经网络的自我学习(训练)方法

2024-04-02 09:53:28 224

原创 1.1.3 神经网络模型分类

2024-04-01 10:08:11 186

原创 1.1.2神经元和其数学模型(常见的)

2024-04-01 10:04:05 163

原创 大数据主要技术

=============================主要技术============================同构/异构的计算机集群,被集群的可以看做一台计算机,如linux的虚拟服务器。Dynamo:亚马逊的,改进了哈希表和向量时钟vector clock。Spark:Berkeley的交互式数据处理系统,特点是快。MapReduce :谷歌的大数据处理平台,服务于搜索。Big Table:分布式数据库,主要储存结构化数据。Hadoop:批量和静态数据,运用最广泛。

2024-03-19 11:06:24 388

原创 云计算技术主要包括

虚拟应用/平台/储存/应用/桌面。实际是在操作系统层面通过“容器”,实现了原本硬件资源的共享。由集中的服务器存储,变为分散的几台存储,辅之以分布式文件系统,和位置服务器定位相应的存储信息。计算机组成的模块不需要运行在实体物理硬件上了,如。3.并行编程技术:自动分成多个子任务。更可靠,高效,易于扩展。4.云计算平台管理技术。

2024-03-19 10:43:34 217

原创 学习--RTOS速读

因为假如事件按1,2,3按键扫描的顺序执行,事件执行到1号按键事件的时候,需要很久才能执行完,一直到1号按键释放都不能执行完,那么当轮询到3号事件的时候,就会丢掉一次事件,因为1那里卡住了,后面3这里时候还在搞1,直接3就被跳过了。这些小程序它的特点是每个都是独立,无限循环,并且不能返回的。2.多线程---也就是在事件的处理上做出改进,响应还是中断,处理由后台里面用循环顺序执行,变成了依靠多线程来处理,这些线程也有优先级,优先级高的会被先执行,这样就更加灵活和实时了。但事件的处理还是在后台里面顺序执行的。

2023-10-10 11:43:27 194

原创 systemd里面的配置

9)snapshot单元:系统快照单元,负责systemd管理器的保存状态 .snapshot。7)scope单元:外部创建的进程 .scope。1)service单元:服务,主要是启动/重启/停止。8) slice单元: 管理系统进程的分层单元 .slice。3)automount单元:文件系统的自动挂载点。6)path路径单元:文件系统中的一个文件和目录 .path。5)mount挂载单元:文件系统挂载点 .mount。

2023-07-31 12:39:11 255

原创 分层,均质,稀薄燃烧

即为普通燃烧方式,燃料和空气混合形成一定浓度的可燃混合气(厂家自配),整个燃烧室内混合气的空燃比是相同的,经火花塞点燃燃烧。本质:只有火花塞附近的在燃烧,最外侧极为稀薄的混合气相当于一个隔热棉,可以将通过缸壁传导所损失的热量降到最低,提高了发动机整体的热效率。缺点:并不是在发动机的任何工况下都适用的,只有在比较柔和的驾驶方式下才能实现分层燃烧,而在需要动力性能的时候,就需要转换到均质燃烧模式。主要典型就是TSI,混合气在燃烧室分层燃烧,离火花塞处的混合气里得汽油浓度最高,即每层以不同的浓度进行燃烧。

2023-02-17 13:18:11 1042

原创 git checkout到指定的commit ID

格式就是git checkout + commit IDgit checkout最主要就是切换分支来用的有关 Git 中 commit 的原理 理解 及 reset、checkout 命令详解_WWWWWWWWolf的博客-CSDN博客git checkout 切 commit_前端精髓的博客-CSDN博客使用git checkout命令切换到指定的commit_汪子熙的博客-CSDN博客_git切换到某个commit

2022-12-08 10:06:26 3199

原创 GRUB--多系统启动引导器

进入到了os后,一般放在了系统的boot或者etc下面,有个单独的grub的目录,东西都在里面。要使用它的话,主要是进行配置,里面会有一些.config文件。安装在硬盘上,还可以安装在 光盘、软盘和闪存盘等移动介质中,这样就可以带起一台无法从硬盘启动的系统。就是在你有多个系统的时候,启动的时候用来引导和管理多系统的(使用所有系统,win和类unix)它做的具体工作就是载入os的内核来初始化os,或者移交引导权给OS自己来完成引导。位于MBR第一个扇区的MBR主引导记录中。

2022-11-26 23:10:59 2005

原创 系统启动其实就2个步骤BIOS和MBR(和之后的init/systemd的关系)

这里需要特别注意的是,关于用户态或是system态的守护进程,是在systemd里面就开始界定了的,可以ps | ef grep systemd来看到。红色警报一出来玩家没有选定的目标,不知道自己在哪,还要自己去找到基地车,然后在地图里找一块风水宝地来展开基地车,才能开局;星际争霸就不一样,一出来就在自己家里,知道自己农民和基地在哪,直接开始搞建设就行了。其他启动中涉及到的各种东西,什么BIOS,MBR,GRUB等等本质都是在做这两步。计算机启动先启动bios,再去读MBR,MBR动了才会启动操作系统。

2022-11-26 13:37:31 1098

原创 定时器的使用和线程安全

在linux下如果对定时要求不太精确的话,使用alarm()和signal()就行了; 但是如果想要实现精度较高的定时功能的话,就要使用setitimer函数。核心api:int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue);调用成功返回0,否则返回-1;which为定时器类型,setitimer支持3种类型的定时器:ITIMER_REAL: 以系统真实的时间来计算,它送出SIGALRM

2022-11-17 16:03:29 555

原创 单钩点弹珠/片经验总结

处理工字型异形弹珠关键是靠两手的配合,如果是工字型异形弹珠的话,弹珠在上挑时,工字头会抵住弹珠孔肩部,而不能挑上去,而且拿推动杆的手也有感觉突然动一下。还有左手在回退时,若掌握不好,会造成原来已拨好的上弹珠又落下来被锁住,只要刻苦训练,处理异形弹珠并不是难事。如何判断是不是异形弹珠呢?如果弹珠上移时不是很柔和,有卡住的感觉,但还能上移,同时还有喀吧喀吧的响声,那么它就是螺旋型异形弹珠。如果锁内是工字型异形弹珠,那么锁内至少会有一个普通的上弹珠,因为普通弹珠能使上下弹珠孔对准,使原装钥匙插入与抽出保持圆滑。

2022-11-16 12:34:42 2892

原创 ubuntu上运行make menuconfig两种报错

1) 如果如上报错,没有target,这是因为运行这个make的时候没在对应的目录下运行,通常是有make的目录,这种系统性的编译的,则是应该在代码的根目录。我这里先看arm-linux-gcc -v 发现arm-linux-gcc:command not found,说明这里没合适的编译器。先装libgl1-mesa-dri:i386,显示这个的确是需要装,共386M(这个mesa也是linux的图形系统)个lib32ncurses5 lib32z1,拉成功了,这个东西是负责图形化make的。

2022-11-15 15:58:42 3002

原创 EMMC版本的IMX6从EMMC启动接SD卡则卡死

解决方法:先要从SD卡启动一次,来初始化硬件。之后再从EMMC启动,挂载SD卡就可以识别和启动了。

2022-11-14 11:50:50 640

原创 扭力,预紧力,和润滑

这里可以使用润滑脂,而不是润滑油。润滑脂也就是稠化了润滑油,稠化剂本质就是颗粒物,颗粒物限制了基础油(润滑油)的流动性。但是润滑脂的主要技术就是在稠化这个过程上。润滑脂的特点就是其流变性,就是在升温或者机械剪切力作用下,会变成半流体;作用力小时又会变回来。2.通常来说施加在螺栓头的扭力最终能转换成预紧力的只是一小部分,10%左右。润滑:静态部件润滑可以减少之前说的摩擦,更多的转化成为最终的预紧力。3.剩下的被消耗的扭力去了哪里呢,主要是摩擦力,角度等。1.预紧力最终且最直接决定螺栓的紧固。

2022-11-11 15:31:56 507

原创 switch里面,一开头就放default是什么意思

注:不会一进去就退出,而是会去进行匹配的。(一般来说default都是放最后的类似return)这是因为default只有在case失败的情况下才会去执行,所以这个default在哪里都可以。2.如果这里面没有break,那么程序会先去跑default下面的case,会一直循环。5.这是一个无线状态机,华为里面是把所有状态写进一个数组,然后匹配数组调用回调函数。4.switch case比if 效率更高,所以讲究人一般用这个。1.会第一个去找case,case都找完了才会去找default。

2022-11-10 17:01:24 3532

原创 IMX6-->8 RTC同步程序涉及到的知识点

4.传来的时间是没设定宽度的,需要改成%2d,Syear就是年份是从1900开始计算的,比如2022就是传来的是122,所以要重新改一下这里Syear=tm.tm_year+1900。2.sprintf函数,发送端要把相对应的几个时间信息拼成buf时候,用这个函数,这函数用法还是比较复杂多样的,总是记混,这个网上讲解太多了。============次要知识==============================2.端口哪些可以用,是自由的动态的,哪些不能用是固定的。1.网络设备驱动的基础知识。

2022-11-10 16:22:35 807

原创 imx6接到时间后设置为本机的时间

【代码】imx6接到时间后设置为本机的时间。

2022-11-10 14:15:14 225

原创 imx6获取和同步时间

imx8到自己客制的文件夹目录里面,配置好当前层的mk和设备树的mk后,到顶部目录export导入环境变量,然后source ,lunch,之后到对应的修改好的目录里面mm单编,编成功后的Log会提示编出来的东西在哪个目录里,一般是out/里面。2)adb push进去的时候,不要push到imx8的/storage下面,去这下面跑应用程序是permission denied,最后是挪到/data下面才跑通的,确保跑之前把应用程序chmod 777一下。对应接收端,imx8这边的还需要按上面所说的配mk。

2022-11-02 20:03:28 807

原创 设备树文件里的aliases和chosen

也就是所谓的label,这样一来的话,以后在给它们这些设备都编了号之后,以后访问设备就通过&label就可以了。有点类似于define,但是这个在设备树里面编号了之后的话,起作用的范围就是全局性的了。是因为它里面的东西一般是boot在启动的时候,在boot的源码里面会有专门的函数调用来填入东西进去。其次,它和前面的aliases一样,虽然是设备节点的书写格式存在于设备树文件里,但是它也不是一个真实的设备。这个其中往里的写的函数的逻辑一般都是先看里面有没有内容,没有内容会自己往里写的。

2022-11-01 13:53:36 1483 1

原创 dtsi---dts即设备树的头文件(公共部分)

11

2022-11-01 11:15:23 863

原创 pcan的dbc和project等的配置

2.只有project还不行,还需要新建一个connection,如果此时没有实际连线的连接,就新建一个virtual connection,这个virtual connection是不依赖于实际的物理线路连接的,意思就是,你还没连上线也可以新建并且用它。4.然后到project browser里面,点receiver/transmitter,进入进去,再在这个里面用把xmt文件apply来翻译dbc文件。1.先要新建一个Project,因为后面的dbc和xmt的文件都需要附庸于一个project才行。

2022-10-31 18:07:30 2633 1

原创 IMX6上获取时间的补充(io的宏定义)

这里面看到实际上rtc-dev.c这是驱动层的,rtc.h\uapi是用户层的,然后Linux下的include里面的rtc.h实际是包含了前面的,直接去拉前面的,这个的话实际可有可无。实际是在下面找到的:rtc-dev.c 和rtc.h\uapi和rtc.h\include\linux里面。也就是定义的这些东西, 这些东西哪里找的呢,也就是这RTC_等等这些define。看这里是去拉的用户层的rtc.h\uapi。

2022-10-31 17:57:37 143

原创 IMX6ULL上获取RTC时间

这里的rtcfd就是struct device,RTC_RD_TIME在这里就是控制的io,后面的&tm就是unsigned long,然后这个函数 ioctl本身就是对上面ops里面的函数指针(int)(ioctl *)(XXXX)的调用,这里相当于省略了ioctl=ioctl这一步,他们的首地址是一样的,因为名字都ioctl。然后前面的define定义的宏,就是对cmd里面的RTC_RD_TIME这样的IO进行的定义。

2022-10-31 17:38:57 715

原创 端口使用汇总

RPC远程过程调用(分布式系统中的机子之间内部进程通信):111端口和135端口(dcom对象服务)1)TCP:ftp的21,telnet的23,smtp的25,http的80等。1)知名端口0-1024:即静态端口,固定地分配给一些服务,不能改一般。震荡波病毒端口:5554端口,利用tcp5554端口开启一个ftp服务。Finger服务(查远程主机os,在线用户,缓冲区溢出):79端口。QQ聊天工具的端口:4000端口(客户端)和8000(服务端)5632端口:pcanywhere远程控制软件端口。

2022-10-25 16:43:58 2427

原创 imx6ull应用程序进systemd里踩坑

按野火的方法,写了个tbox-example,之前丢进去之后呢,启动的打印log里面没有内容,然后再看enable和actice的状态都是没起来的。然后pgrep+应用名(tbox-example):查找它的pid,找到它之后发现 kill -9杀不死,因为里面写的就是自启动,always嘛。再就是找到pid之后,到/proc/它的pid里面去看,cat status可以查看它的情况,包括父进程。之后就是出现了,这个测试文件printf后面没有加/r/n,结果就会直接打印不出来,卡在那。

2022-10-20 19:25:48 639

原创 以atlis为例:即插即用电动汽车(皮卡)

高速充电:1.热管理创新(软件) 2.热管理硬件:硅基冷却液+电池阴阳极的Z形设计。即插即用:高度模块化,动力总成单个模块20分钟更换。

2022-10-13 18:51:00 164

原创 mount挂载

2.mount -t vfat /dev/sda1 /mnt/u”将它以vfat分区的方式挂载。3.同理还可以是mount -t nfs /dev/sda1 /mnt/u”等等,具体的具体查。1.只插了一个U盘并且这个U盘不是SCSI的硬盘接口的话,它显示就是sda1。先fdisk -l或者lsblk看下在哪 df -Hf。

2022-10-13 09:59:24 210

原创 路由器wan和lan口

如果路由器已经设置好了对应的无线上网模式,需要再借用路由器上的网线直接插设备上网的话,最好从lan(黄色口)直接接一根网线出来,再插设备;要上网的话,需要重新设置一下,因为之前的设置好的模式,是针对无线上网的。wan口进去的是输入线,直接接到路由器的蓝色接口,进去的是(未经拨号设置处理)的信号,不能直接用;所以,直接拔wan口插设备是不能直接上网的,需要设备上提供拨号上网设置这一步所需的东西。lan口(黄色接口)出来的是,可以直接用的信号,直接用网线接到设备上就能直接上网。

2022-10-11 17:13:46 5642

原创 晶振,机器频率和脉冲(时钟周期)

任何单片机运行的时候,根据它的工作流程,都是要先从ROM里取指令,再才能往下一步步执行的,这个取指令访问一次ROM存储器的过程的时间,就是一个。内部和外部晶振---30MHz以下的叫外部晶振,准确性和稳定性较好,受环境的影响更小,可以休眠停止来降低能耗;假设单片机的晶振频率为12MHz,意思就是一个脉冲的时间是1/12微妙,即它的时钟周期是1/12微秒。也就是说,没有晶振,就没有时钟周期,没有时钟周期,就没有程序(指令)的运行,那么单片机就无法工作。单片机它要运行指令,是建立在晶振提供的时钟频率之上的。

2022-10-09 15:25:47 3017

EXQ_day03_进程间同步与互斥.zip

EXQ_day03_进程间同步与互斥.zip

2021-09-28

空空如也

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

TA关注的人

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