- 博客(140)
- 资源 (1)
- 收藏
- 关注
原创 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
433
原创 大数据主要技术
=============================主要技术============================同构/异构的计算机集群,被集群的可以看做一台计算机,如linux的虚拟服务器。Dynamo:亚马逊的,改进了哈希表和向量时钟vector clock。Spark:Berkeley的交互式数据处理系统,特点是快。MapReduce :谷歌的大数据处理平台,服务于搜索。Big Table:分布式数据库,主要储存结构化数据。Hadoop:批量和静态数据,运用最广泛。
2024-03-19 11:06:24
378
原创 云计算技术主要包括
虚拟应用/平台/储存/应用/桌面。实际是在操作系统层面通过“容器”,实现了原本硬件资源的共享。由集中的服务器存储,变为分散的几台存储,辅之以分布式文件系统,和位置服务器定位相应的存储信息。计算机组成的模块不需要运行在实体物理硬件上了,如。3.并行编程技术:自动分成多个子任务。更可靠,高效,易于扩展。4.云计算平台管理技术。
2024-03-19 10:43:34
200
原创 学习--RTOS速读
因为假如事件按1,2,3按键扫描的顺序执行,事件执行到1号按键事件的时候,需要很久才能执行完,一直到1号按键释放都不能执行完,那么当轮询到3号事件的时候,就会丢掉一次事件,因为1那里卡住了,后面3这里时候还在搞1,直接3就被跳过了。这些小程序它的特点是每个都是独立,无限循环,并且不能返回的。2.多线程---也就是在事件的处理上做出改进,响应还是中断,处理由后台里面用循环顺序执行,变成了依靠多线程来处理,这些线程也有优先级,优先级高的会被先执行,这样就更加灵活和实时了。但事件的处理还是在后台里面顺序执行的。
2023-10-10 11:43:27
182
原创 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
234
原创 分层,均质,稀薄燃烧
即为普通燃烧方式,燃料和空气混合形成一定浓度的可燃混合气(厂家自配),整个燃烧室内混合气的空燃比是相同的,经火花塞点燃燃烧。本质:只有火花塞附近的在燃烧,最外侧极为稀薄的混合气相当于一个隔热棉,可以将通过缸壁传导所损失的热量降到最低,提高了发动机整体的热效率。缺点:并不是在发动机的任何工况下都适用的,只有在比较柔和的驾驶方式下才能实现分层燃烧,而在需要动力性能的时候,就需要转换到均质燃烧模式。主要典型就是TSI,混合气在燃烧室分层燃烧,离火花塞处的混合气里得汽油浓度最高,即每层以不同的浓度进行燃烧。
2023-02-17 13:18:11
943
原创 git checkout到指定的commit ID
格式就是git checkout + commit IDgit checkout最主要就是切换分支来用的有关 Git 中 commit 的原理 理解 及 reset、checkout 命令详解_WWWWWWWWolf的博客-优快云博客git checkout 切 commit_前端精髓的博客-优快云博客使用git checkout命令切换到指定的commit_汪子熙的博客-优快云博客_git切换到某个commit
2022-12-08 10:06:26
2981
原创 GRUB--多系统启动引导器
进入到了os后,一般放在了系统的boot或者etc下面,有个单独的grub的目录,东西都在里面。要使用它的话,主要是进行配置,里面会有一些.config文件。安装在硬盘上,还可以安装在 光盘、软盘和闪存盘等移动介质中,这样就可以带起一台无法从硬盘启动的系统。就是在你有多个系统的时候,启动的时候用来引导和管理多系统的(使用所有系统,win和类unix)它做的具体工作就是载入os的内核来初始化os,或者移交引导权给OS自己来完成引导。位于MBR第一个扇区的MBR主引导记录中。
2022-11-26 23:10:59
1927
原创 系统启动其实就2个步骤BIOS和MBR(和之后的init/systemd的关系)
这里需要特别注意的是,关于用户态或是system态的守护进程,是在systemd里面就开始界定了的,可以ps | ef grep systemd来看到。红色警报一出来玩家没有选定的目标,不知道自己在哪,还要自己去找到基地车,然后在地图里找一块风水宝地来展开基地车,才能开局;星际争霸就不一样,一出来就在自己家里,知道自己农民和基地在哪,直接开始搞建设就行了。其他启动中涉及到的各种东西,什么BIOS,MBR,GRUB等等本质都是在做这两步。计算机启动先启动bios,再去读MBR,MBR动了才会启动操作系统。
2022-11-26 13:37:31
1069
原创 定时器的使用和线程安全
在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
524
原创 单钩点弹珠/片经验总结
处理工字型异形弹珠关键是靠两手的配合,如果是工字型异形弹珠的话,弹珠在上挑时,工字头会抵住弹珠孔肩部,而不能挑上去,而且拿推动杆的手也有感觉突然动一下。还有左手在回退时,若掌握不好,会造成原来已拨好的上弹珠又落下来被锁住,只要刻苦训练,处理异形弹珠并不是难事。如何判断是不是异形弹珠呢?如果弹珠上移时不是很柔和,有卡住的感觉,但还能上移,同时还有喀吧喀吧的响声,那么它就是螺旋型异形弹珠。如果锁内是工字型异形弹珠,那么锁内至少会有一个普通的上弹珠,因为普通弹珠能使上下弹珠孔对准,使原装钥匙插入与抽出保持圆滑。
2022-11-16 12:34:42
2732
原创 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
2918
原创 EMMC版本的IMX6从EMMC启动接SD卡则卡死
解决方法:先要从SD卡启动一次,来初始化硬件。之后再从EMMC启动,挂载SD卡就可以识别和启动了。
2022-11-14 11:50:50
610
原创 扭力,预紧力,和润滑
这里可以使用润滑脂,而不是润滑油。润滑脂也就是稠化了润滑油,稠化剂本质就是颗粒物,颗粒物限制了基础油(润滑油)的流动性。但是润滑脂的主要技术就是在稠化这个过程上。润滑脂的特点就是其流变性,就是在升温或者机械剪切力作用下,会变成半流体;作用力小时又会变回来。2.通常来说施加在螺栓头的扭力最终能转换成预紧力的只是一小部分,10%左右。润滑:静态部件润滑可以减少之前说的摩擦,更多的转化成为最终的预紧力。3.剩下的被消耗的扭力去了哪里呢,主要是摩擦力,角度等。1.预紧力最终且最直接决定螺栓的紧固。
2022-11-11 15:31:56
475
原创 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
3485
原创 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
790
原创 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
783
原创 设备树文件里的aliases和chosen
也就是所谓的label,这样一来的话,以后在给它们这些设备都编了号之后,以后访问设备就通过&label就可以了。有点类似于define,但是这个在设备树里面编号了之后的话,起作用的范围就是全局性的了。是因为它里面的东西一般是boot在启动的时候,在boot的源码里面会有专门的函数调用来填入东西进去。其次,它和前面的aliases一样,虽然是设备节点的书写格式存在于设备树文件里,但是它也不是一个真实的设备。这个其中往里的写的函数的逻辑一般都是先看里面有没有内容,没有内容会自己往里写的。
2022-11-01 13:53:36
1413
1
原创 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
2351
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
137
原创 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
692
原创 端口使用汇总
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
2406
原创 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
614
原创 以atlis为例:即插即用电动汽车(皮卡)
高速充电:1.热管理创新(软件) 2.热管理硬件:硅基冷却液+电池阴阳极的Z形设计。即插即用:高度模块化,动力总成单个模块20分钟更换。
2022-10-13 18:51:00
153
原创 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
193
原创 路由器wan和lan口
如果路由器已经设置好了对应的无线上网模式,需要再借用路由器上的网线直接插设备上网的话,最好从lan(黄色口)直接接一根网线出来,再插设备;要上网的话,需要重新设置一下,因为之前的设置好的模式,是针对无线上网的。wan口进去的是输入线,直接接到路由器的蓝色接口,进去的是(未经拨号设置处理)的信号,不能直接用;所以,直接拔wan口插设备是不能直接上网的,需要设备上提供拨号上网设置这一步所需的东西。lan口(黄色接口)出来的是,可以直接用的信号,直接用网线接到设备上就能直接上网。
2022-10-11 17:13:46
5332
原创 晶振,机器频率和脉冲(时钟周期)
任何单片机运行的时候,根据它的工作流程,都是要先从ROM里取指令,再才能往下一步步执行的,这个取指令访问一次ROM存储器的过程的时间,就是一个。内部和外部晶振---30MHz以下的叫外部晶振,准确性和稳定性较好,受环境的影响更小,可以休眠停止来降低能耗;假设单片机的晶振频率为12MHz,意思就是一个脉冲的时间是1/12微妙,即它的时钟周期是1/12微秒。也就是说,没有晶振,就没有时钟周期,没有时钟周期,就没有程序(指令)的运行,那么单片机就无法工作。单片机它要运行指令,是建立在晶振提供的时钟频率之上的。
2022-10-09 15:25:47
2955
原创 测网络:回送地址127.0.0.1
ps:也有用来模拟server地址用的用法,即在client/server模式的应用程序中,如果还没有server,要测试二者间的连接,可以Ping 127.1,那么能ping通自己的回送地址,就能ping 通server。ping 127.0.0.1 或者ping 127.1 (这两个地址一样的)能通则代表:本机的网卡和IP协议安装都没问题。
2022-10-08 17:46:53
1573
原创 添加默认网关route add default gw
使用route add default gw 10.64.64.64 ,添加对应的此地址进去后,再ping外网可通。这样的提示,这后面的default to 的地址就是网关的默认指向,需要把这个手动添加到网络配置里面。如果碰到连接时,无法determine IP address,即网关无法解析地址的情况。如果不添加此默认网关,则只能ping本地inet和127.0.0.1。需要手动配置路由网关的指向。
2022-10-08 17:39:24
7273
原创 嵌入式启动细节
但是由于此时内存还没有初始化,所以,这时候,会借助芯片内部的sram来代替内存做这个事情,具体地就是,会把保存在nand或者sd头部的通常是长度为4k的代码拷贝进sram,这4K代码运行起来后会执行各种初始化,和拷贝的工作;2.1)nor启动的时候,就把nor flash映射为0000地址,然后系统复位,跳转到uboot的中断向量表的第一行代码=nor的第一段代码去执行。并不是先从uboot启动,在这之前,有一段固化在SOC硬件内部的启动代码(一般在CPU里的CODEROM里,这个东西是集成的)
2022-09-29 14:56:56
234
原创 emmc flash和nand flash
都是flash闪存,简单来说就是 emmc在nand flash基础上多了个flash controller控制器。物理特性上来说,emmc的读写也更快。
2022-09-20 19:19:55
603
原创 开发板模块上的天线--有源和无源天线
有源天线是利用天线感应的电压或电流直接作为放大器的控制信号,因此有源天线和放大器之间的级联不需要匹配,只需要有最小噪声,而无源天线追求的尽量高的电平,这个电平作为功率被放大器放大,其和放大器之间的级联需要匹配。4.天线的有源部分主要是用来补偿从天线到接收模块之间的电缆损耗,如果天线和接收模块之间的插损极小,则可以使用无源天线。2.有源的功率更大一些,也贵一点。互换的话效果损益不会特别大。1.可以兼容,这两种一般都可以互用。结论:大多数人都买的有源的,除非要量产才考虑无源。3.天线只要频率一样就可以互用。
2022-09-14 18:38:24
1182
原创 PCAN使用流程
ps:同样的在Project browser里的project files里面,右击can dbc文件,open in symbol editor,可以看到报文的具体含义和对应的ID信息。3.在view--project browser里面,--project items里的connection上右击,然后add connection.4.也在这个里面导入can的dbc报文解析文件,和信号文件.xmt,在project files里面=如果一个ID对应多个信号,可以在edit里面设置filter功能。
2022-08-24 18:07:53
3946
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人