幸福快乐fyf
这个作者很懒,什么都没留下…
展开
-
[Classic AUTOSAR学习] DLT模块(Log&Trace)
AUTOSAR Dlt (Diagnostic Log and Trace) 模块主要用来接收来自DET、DEM、SW-Cs的日志信息(log information)或者来自RTE的跟踪信息(trace information)。Dlt模块通过通信总线传输这些数据,使这些日志和trace信息在ECU外部可见。为此,Dlt模块会定义了用于在如何在通信总线上发送和接收这些专用的日志/跟踪信息的API。此外也可以通过NvM模块来永久保存Dlt模块的更新过滤器设置。这使得ECU能够以期望的级别传输日志/跟转载 2022-08-27 22:34:32 · 2518 阅读 · 0 评论 -
如何使用VH6501进行busoff和采样点测试_大江大城的博客-程序员信息网_vh6501 采样点
最近在研究使用VH6501进行CAN节点测试,主要是采样点和Busoff测试,期间踩了不少坑,下面详细分享下踩坑和环境搭建经历,CAN测试这块我也是最近刚起步,如果有说的不对的地方欢迎各位大佬指正...转载 2022-07-15 12:11:57 · 4471 阅读 · 0 评论 -
linux 内核启动Initramfs与initrd 及其挂载
Initramfs/initrd则是填充(仅仅是释放文件到rootfs根目录)/扩充(通过挂载其他文件系统类型到rootfs指定目录)rootfs的关键,以保证Linux系统的后续启动。1.initrd在早期的linux系统中,一般只有硬盘或者软盘被用来作为linux根文件系统的存储设备,因此也就很容易把这些设备的驱动程序集成到内核中。但是现在的嵌入式系统中可能将根文件系统保存到各种存储设备上,包括scsi、sata,u-disk等等。因此把这些设备的驱动代码全部编译到内核中显然就不是很方便。为了转载 2021-12-13 16:37:53 · 8798 阅读 · 0 评论 -
汽车CAN总线错误状态种类有哪些?一旦进入Busoff,如何快速处理?
由于CAN控制器会根据自身对接收逻辑的判断,进行错误监测与错误帧的发送,用户难以干预,所以导致用户在使用时,经常遇到如下烦扰:l 节点在现场运行中,偶发进入Busoff,必须人工干预断电上电,甚至复位都没用;l 一上电,总有几个节点上不去,必须要反复上电;l 运行中,遇到干扰,由于有错误帧,发送节点持续重发,导致总线阻塞和信号延迟;l 接收节点遇到干扰后,进入错误被动,时不时的丢帧;CAN控制器受到干扰或者损坏,而导致自身的错误计数器进行计数累加,并且发出“错误帧”的错误标识,主动错误状转载 2022-05-03 20:02:52 · 6509 阅读 · 0 评论 -
AutoSAR CANTP总结
AutoSAR CANTPOverviewCANTP用来组装分段CAN I-PDUs。COM和DCM模块通信协议是不一样的,由PDUR根据I-PDU ID来决定用哪个协议,PDUR也会决定传输协议是否使用。PDUR相当于一个网关,比例1:1CANTP根据N-PDU ID来只处理SF FF CF FC,CANIf要确定是将I-PDU转发到CANTP或者PDURCAN TP职责:组装、分段数据来收发,取消收发 流控 检测分割会话时的错误配置与服务CANTP配置SDU个数/转载 2022-04-25 08:14:21 · 2245 阅读 · 2 评论 -
话说AUTOSAR的实用性
现在做汽车电子的,基本上都知道AUTOSAR,但是真正理解 AUTOSAR的确实没多少人。这话怎么理解呢?就是说,你明白为什么要用AUTOSAR?它有什么好处?它适合你的企业吗?首先AUTOSAR的核心是它的方法论,这是最具价值的地方,方法论的大头,其实在于整车的开发,就是它是其于功能,而非零部件。比如说开发一个BMS,整车开发的时候,人家是从上而下来的,比如,你车上要有电池管理,那需要哪些功能?首先由于你是电动汽车,就得有电池,有了电池那就得描述电池一系列功能,包括充电放电控制,电池安全检测,过放充保转载 2022-04-23 21:16:16 · 365 阅读 · 0 评论 -
AutoSar之微控制器抽象层MCAL
微控制器抽象层位于AUTOSAR BSW的最底层,包含内部驱动,可直接访问微控制器和外设芯片。从具体应用来看,MCAL主要包括微控制器驱动、存储器驱动、通信驱动和输入输出驱动四个部分,各部分又由具体的与微控制器硬件相对应的驱动模块组成。其实,从AUTOSAR官文中,MCAL还包含另外两个部分:加密驱动和无线通讯驱动。由于基本无项目应用,所以暂且不提。下面就每个部分宏观解释下。微控制器驱动微控制器驱动由通用定时器驱动(GPT Driver)、看门狗驱动(WDG Driver)、微控制器转载 2022-04-23 19:37:49 · 5930 阅读 · 0 评论 -
CANIF优化
AUTOSAR基础软件中的通讯,前文已经介绍过COM模块、PduR模块、CanTp模块和IpduM模块,今天介绍硬件抽象层的CAN接口模块 —— CanIf模块。1 位置和作用如图1所示,CAN接口模块(下文简“CanIf”)位于底层CAN驱动(CanDrv)、CAN收发器(CanTrcv)和上层通信服务层(CanSm、CanNm)、CAN传输协议(CanTp)、PDU路由器(PduR)之间。它表示上层通信层的CAN驱动程序服务接口。图1 CanIf的位置CanIf提供了独特的接口来转载 2022-04-23 19:17:23 · 1059 阅读 · 0 评论 -
RK3399平台开发系列讲解(内存篇)15.15、MMU页表存储管理部分
目录一、MMU页表存储管理部分一、MMU页表存储管理部分MMU:完成的工作就是虚拟地址到物理地址的转换,可以让系统中的多个程序跑在自己独立的虚拟地址空间中,相互不会影响。程序可以对底层的物理内存一无所知,物理地址可以是不连续的,但是不妨碍映射连续的虚拟地址空间。TLB:MMU工作的过程就是查询页表的过程,页表放置在内存中时查询开销太大,因此专门有一小片访问更快的区域用于存放地址转换条目,用于提高查找效率。当页表内容有变化的时候,需要清除TLB,以防止地址映射出错。Cache:处理器和存储转载 2022-02-04 08:47:56 · 391 阅读 · 0 评论 -
Linux物理内存外碎片化概述
本文出现的内核代码来自Linux4.19,如果有兴趣,读者可以配合代码阅读本文。一、Linux物理内存外碎片化概述什么是Linux物理内存碎片化?Linux物理内存碎片化包括两种:1.物理内存内碎片:指分配给用户的内存空间中未被使用的部分。例如进程需要使用3K bytes物理内存,于是向系统申请了大小等于3Kbytes的内存,但是由于Linux内核伙伴系统算法最小颗粒是4K bytes,所以分配的是4Kbytes内存,那么其中1K bytes未被使用的内存就是内存内碎片。Linux物转载 2022-02-03 13:50:32 · 311 阅读 · 0 评论 -
RK3399平台开发系列讲解(内存篇)15.26、Linux内存是怎么工作的?
目录一、内存映射二、虚拟内存空间分布三、内存分配四、内存释放????Linux是怎么管理内存,今天我们一探究竟。一、内存映射Linux 内核给每个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。这样,进程就可以很方便地访问内存,更确切地说是访问虚拟内存。虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同字长(也就是单个 CPU指令可以处理数据的最大长度)的处理器,地址空间的范围也不同。比如最常见的 位和 64位系统,我画了转载 2022-02-02 13:40:33 · 451 阅读 · 0 评论 -
页错误 Page Fault /缺页异常 详解
页错误 Page Fault/缺页异常 详解1. 第一部分:如果你看得懂 1.1 页错误定义 1.2 页错误的处理 2. 第二部分:如果你看不懂上面的,请看这里 2.1. 举例子(背景) 2.1.1 进程及页映射 2.1.2 映射关系和数据结构 2.2 结合图说明什么是页错误 2.2.1 页错误产生 2.2.2 页错误处理 1. 第一部分:如果你看得懂1.1 页错误定义当cpu执行进程的某个页面时,发现他要访问的页(虚拟地转载 2022-01-26 23:29:35 · 1935 阅读 · 0 评论 -
背包问题、贪心算法、动态规划
1、0-1背包问题0-1背包问题:有一个贼在偷窃一家商店时,发现有n件物品,第i件物品价值vi元,重wi磅,此处vi与wi都是整数。他希望带走的东西越值钱越好,但他的背包中至多只能装下W磅的东西,W为一整数。应该带走哪几样东西?这个问题之所以称为0-1背包,是因为每件物品或被带走;或被留下;小偷不能只带走某个物品的一部分或带走同一物品两次。在(分数(部分))背包问题(fractional knapsack problem)中,场景与上面问题一样,但是窃贼可以带走物品的一部分,而不必做出0-1的二分选转载 2022-01-21 16:15:49 · 426 阅读 · 0 评论 -
如何查看linux kernel邮件列表
1. 前言本文主要总结浏览kernel patch的方法,以此希望促成自己养成阅读patch的习惯。用一个朋友的话说,这样才能更好的融入社区。2.linux版本发展简介2.1 史前时代(0.01~1.0)版本更迭过程为:0.01 -> 0.02 -> 0.10 -> 0.11 -> 0.12 -> 0.95 -> 0.96 -> 0.97.x -> 0.98.x -> 0.99.x -> 1.02.2 奇偶时代(1.0~2.6.转载 2022-01-16 14:56:24 · 1034 阅读 · 0 评论 -
【开源社区】向开源社区提交patch流程
Linux相关知识点 1.1 开发过程简述参考链接:linux/2.Process.rst at master · torvalds/linux · GitHub每两到三个月就会发生一次新的主要内核发布 使用滚动开发模型(rolling development model),不断整合主要变更。 在每个开发周期的开始,“合并窗口”被认为是开放的,合并补丁原则:足够稳定并被开发社区接受的代码才被合入到主线内核中,在此期间新开发周期的大部分更改将会合入到内核。合并窗口持续大约两周。 合并窗口内合并.原创 2022-01-04 20:12:39 · 726 阅读 · 0 评论 -
arm64 linux 中断,ARM64 中断处理流程
如果说Linux内核是个身体,保罗万象,那么中断就如同是其中更为关键的神经系统,有了他的存在,中央处理器才能了解各个外设所处的状态,并且及时的给与支持响应。本章的重点不是介绍如何使用中断与中断 API,更不是为了了解软件中断、硬件中断、tasklet 微任务以及工作队列有何分别,我们仅仅只是为了观察中断时如何一步步传递上来又是如何处理的流程的呢?中断注册中断即 CPU 在执行进程上下文期间,出现了某些突发情况,导致 CPU 必须暂停任务转而执行中断上下文。从定义上来讲,其实只要是突然中断转载 2022-01-03 07:06:12 · 747 阅读 · 0 评论 -
这应该是关于GPS定位写得最详实清晰的文章之一
本文咱们就说说和物联网关系密切的卫星定位那些事儿。介绍篇过去,如果你的女友是个路痴,大概会有这样的对话……——你在哪儿呢?——啊?我在马路上啊。——有什么特征?——头顶有个月亮。——你旁边有什么啊?——有个路灯。——有没有路牌啊?路牌上写的什么?——我看看啊。还真的有,上边写着“禁止停车 违者罚款”。——姑奶奶,我真是服了你了……——哼,你是不是不爱我了,你肯定是不爱我了,你是不是喜欢上了新来的那个前台?——。。。——我跟你说那个前台绝对是个伪.转载 2020-08-09 19:15:01 · 8634 阅读 · 2 评论 -
kvm-qemu使用kgdb、出现Guest has not initialized the display和代码覆盖率
1、更新xml让tcp的1234端口可以被监听virsh shutdown domainvirsh listvirsh undefine domain --nvramvim *.xml1、找到domain指令并添加选项xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'。<domain type='kvm' xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0原创 2021-10-30 11:26:13 · 4588 阅读 · 1 评论 -
Git的Patch功能和msg模板设置、git服务器搭建、KVM virsh常用命令
本文整理编辑自:Git的Patch功能 - 老z的博客 - 博客园http://yuxu9710108.blog.163.com/blog/static/2375153420101114488765/一、前言UNIX世界的软件开发大多都是协作式的,因此,Patch(补丁)是一个相当重要的东西,因为几乎所有的大型UNIX项目的普通贡献者,都是通过Patch来提交代码的。作为最重要的开源项目之一,Linux,也是这样的。普通开发者从软件仓库clone下代码,然后写入代码,做一个Patc...转载 2021-10-18 15:20:24 · 448 阅读 · 0 评论 -
STM32的时钟树,你了解多少?
这是stm 32的时钟系统,时钟与单片机的关系就好比心脏与人的关系一样,它为单片机的运行提供时间基准。STM32F1系列单片机的时钟树请看图1。图1 STM32F1系列单片机的时钟树我们将这个复杂的系统分成三个部分,第一个部分是时钟的输入,也就是时钟源。第二个部分是时钟的输出,也就是各种外设等应用模块。第三个部分就是连接输入与输出的枢纽,也就是锁相回路、分频器和倍频器等。请看图2.图2 时钟系统的三个部分STM32F1系列单片机有四个时钟源:1.低速的内部时钟(LSI),它是一个转载 2021-10-06 22:23:09 · 834 阅读 · 0 评论 -
linux流程总结
1、linux下载1.1、启动tftp(1)、启动sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plistsudo launchctl start com.apple.tftpd执行上边两条,如果没有报错,那么说明启动成功。如果想看日志可以使用如下命令:tail -f /var/log/system.log(2)、关闭sudo launchctl unload -F /System/Library/Laun原创 2021-09-12 20:13:44 · 140 阅读 · 0 评论 -
逻辑分析仪的使用方法
1,下载逻辑分析仪配套软件我手头是Kingst的LA5016型号,直接去官网下载对应版本http://www.qdkingst.com/cn2.安装和使用安装过程在下载好的包中有详细的步骤说明,就不多说了,这里说一下注意的点1.采样率要根据测量频率而定,比如我最大用到400KHZ,采样率在频率10倍以上就好了,比如选5M、10M或20M,都可以但不能太大,如果选200M就会太大了,分析结果容易有问题2.可以通过采集深度设置采集时间3.选择好协议和通道后,就可以点击开始采集了,这里我用转载 2021-08-22 13:14:32 · 4000 阅读 · 0 评论 -
Cacheable VS Non-Cacheable
1 基本概念在嵌入式软件开发中,经常会碰到说某块内存是cache的,还是non-cache的,它们究竟是什么意思?分别用在什么场景?non-cache和cache的内存区域怎么配置?这篇博文将会围绕这几个问题展开讨论。转载 2017-03-24 22:47:45 · 2229 阅读 · 0 评论 -
ISO-CANFD和NONISO-CANFD报文差异
CAN_FD国际标准与博世标准差异:采集数据并对比和CANoe的差别,结果发现CRC场不同,如下图所示。转载 2020-10-27 10:37:01 · 1343 阅读 · 0 评论 -
CAN和CANFD的区别总结
CANFD:可以理解成CAN协议的升级版,只升级了协议,物理层未改变。Can与CanFD主要区别:传输速率不同、数据长度不同、帧格式不同、ID长度不同。转载 2017-03-25 12:27:02 · 7579 阅读 · 0 评论 -
高流量网站如何做出高性能?(前端、后端和存储服务器性能测试)
转载至http://blog.oneapm.com/apm-tech/340.html,转载前请跟原作者联系。前一段时间接触了一个教育集团的老总,集团本身是在教育实体化阶段也就是各种教科书盛行的时候起来的,最近 10 年互联网教育越来越火,老板也瞅准商机跳了进来。可是公司的在线教育板块一直不温不火没有什么起色,Google Analytics、百度统计、CNZZ 数据专家等各种运营软件用了个遍还是老样子。转载 2017-03-25 18:24:48 · 1655 阅读 · 0 评论 -
IAR和KEIL调试工具栏的debug快捷键
这是毕设除了数据分析部分的框架er图前端模块图后端模块图原创 2017-03-20 16:58:00 · 2561 阅读 · 0 评论 -
sdram/IS42S16160具体参数
https://ebf-imxrt1052-tutorial.readthedocs.io/zh/latest/doc/chapter23/chapter23.html原创 2020-12-19 13:54:31 · 785 阅读 · 1 评论 -
STM32启动过程解读与跟踪验证
近段时间由于在做ucos-iii的移植,所以就顺便了解下STM32的启动过程。经过查阅各种官方文献和对代码进行单步跟踪,详细地叙述了STM32加电启动的具体过程。对于关键性的语句都指明了出处。下面将学习成果分享给大家,由于笔者知识有限,不当之处敬请指出。 为了更好的说明问题,先来看STM32的内存映射(以STM32L1xx为例) 由于固定的内存映射,代码区(codearea)从0x00000000开始,通过指令总线(ICodeBus)和数据总线(DCodeB...转载 2020-12-18 14:42:40 · 452 阅读 · 0 评论 -
i.MX RT1050上手手册 (外部Flash)
本文章转载自"施长浩恩智浦MCU加油站",https://mp.weixin.qq.com/s/joc6SoYUQ458xL8AhUuzxAi.MX RT1050自推出以来,我们陆续收到不少客户咨询外接Flash闪存的事项。针对该产品无闪存的特点(需要外挂片外Flash或其他存储介质),结合客户提到比较多的问题,本文着重介绍常用的FlexSPI NOR器件在i.MX RT1050上的使用。支持的Flash类型i.MX RT1050可以支持所有符合JEDEC标准(JESD...转载 2020-12-18 14:44:17 · 1411 阅读 · 0 评论 -
SRAM和SDRAM的区别
内存在电脑中起着举足轻重的作用,一般采用半导体存储单元,包括随机存储器(RAM),只读存储器(ROM),以及高速缓存(CACHE)。按内存条的接口形式,常见内存条有两种:单列直插内存条(SIMM),和双列直插内存条(DIMM)。SIMM内存条分为30线,72线两种。DIMM内存条与SIMM内存条相比引脚增加到168线。DIMM可单条使用,不同容量可混合使用,SIMM必须成对使用。按内存的工作方式,内存又有FPA EDO DRAM和SDRAM(同步动态RAM)等形式。FPA(FAST PAGE M..转载 2020-11-08 16:51:42 · 5976 阅读 · 0 评论 -
ARM分散加载文件
ARM的连接器提供了一种分散加载机制,在连接时可以根据分散加载文件(.scf文件)中指定的存储器分配方案,将可执行镜像文件分成指定的分区并定位于指定的存储器物理地址。这样,当嵌入式系统在复位或重新上电时,在对CPU相应寄存器进行初始化后,首先执行ROM存储器的Bootloader代码,根据连接时的存储器分配方案,将相应代码和数据由加载地址拷贝到运行地址,这样,定位在RAM存储器的代码和数据就在RAM存储器中运行,而不再从ROM存储器中取数据或取指令,从而大大提高了CPU的运行速率和效率。(二).转载 2020-10-27 19:01:36 · 692 阅读 · 0 评论 -
stm32 KEIL软件设置程序烧写起始地址及RO-data、RW-data、ZI-data的解释
STM32系列的mcu,这儿以cortex-M4为例,我们在线调试时,一般会设置程序烧写起始地址和大小。这个大小一般是0x08000000,也就是内部flash的映射地址。不过有些产品是从0x08020000开始的,这是为什么呢?是因为在0x08000000-0x08020000这段空间放的是引导程序,也就是引导程序是从0x08000000开始存放,一般而言,引导程序最终也是要跳转到主app执行的,对于我们这儿而言,就是引导程序会跳转到0x08020000继续执行,而主工程代码是从0x08020000开始存转载 2020-09-19 15:35:58 · 4677 阅读 · 0 评论 -
libuv源码剖析(四): 高效线程池Threadpool
Introduction在网络编程中, 始终都是基于Reactor模型的变种, 无论怎么演化, 核心组件都包括: Reactor实例(事件注册, 注销, 通知); 多路复用器(由操作系统提供, 比如kqueue, select, epoll); 事件处理器(handler)以及事件源(linux中这就是描述符)这四个组件.一般,会单独启动一个线程运行Reactor实例来实现真正的异步操作。但是,依赖操作系统提供的系统调用来实现异步是有局限的,比如在Reactor模型中我们只能监听到:网络IO事件、si转载 2020-06-12 22:07:24 · 558 阅读 · 0 评论 -
FreeRTOS高级篇7---FreeRTOS内存管理分析
1. heap_1.c2. heap_2.c3.heap_3.c4.heap_4.c5.heap_5.c转载 2014-09-23 17:06:44 · 3933 阅读 · 0 评论 -
FreeRTOS系列第3篇---FreeRTOS移植指南
1.修改例程使之运行到不同评估板2.合并或修改官方演示工程转载 2014-08-22 10:54:54 · 1308 阅读 · 0 评论 -
FreeRTOS系列第8篇---FreeRTOS内存管理
1.heap_1.c2.heap_2.c3.heap_3.c4.heap_4.c5.heap_5.c(V8.1.0新增)转载 2014-09-04 21:02:03 · 4084 阅读 · 0 评论 -
make menuconfig过程讲解
cp config_ok .configmake menuconfig中把config_ok拷贝成为.config的原因当我们在执行make menuconfig这个命令时,系统到底帮我们做了哪些工作呢?这里面一共涉及到了一下几个文件我们来一一讲解Linux内核根目录下的scripts文件夹arch/$ARCH/Kconfig文件、各层目录下的Kconfig文件Linux内核根目录下的makefile文件、各层目录下的makefile文件Linux内核根目录下的的.conf转载 2020-08-06 10:44:22 · 3990 阅读 · 0 评论 -
Vim下Ctrl+S卡死?
1. 问题vim在编辑文件时,按了Ctrl+S后怎么都不动了。只能关闭SSH窗口。2. 原因Ctrl+S :在Linux 下是锁定屏幕的快捷键3. 解决Ctrl+Q :解锁屏幕Ctrl+ S :锁定屏幕转载 2020-06-22 14:44:50 · 317 阅读 · 0 评论 -
fatfs学习-stm32零玩转
21.1 文件系统简介:使用SPI FLASH直接存储数据:当需要记录字符“STM32-F429 SPI FLASH” 时。 可以把这些文字转化成ASCII码,存储在数组中,然后调用SPI_FLASH_BufferWrite函数,把数组内容写入到SPI Flash芯片的指定地址上,在需要的时候从该地址把数据读取出来,再对读出来的数据以ASCII码的格式进行解读。• 难以记录有效数据的位置• 难以确定存储介质的剩余空间• 不明确应以何种格式来解读数据Windows上的文件系统:...转载 2020-05-18 07:36:53 · 1775 阅读 · 0 评论