
S32K
文章平均质量分 66
grey_csdn
这个作者很懒,什么都没留下…
展开
-
1159_S32K148 FEE的实现
S32K148中的FEE实现方式有一定的硬件机制存在,因此在实现上跟之前接触到的FEE多少有一些不同。在此之前接触到的FEE,比如说MPC5644上的FEE,基本上是Flash驱动加纯软件策略来实现的。而S32K148上面则不同,在这个MCU上有专门的硬件实现机制,虽然也用到了Flash但是Flash是表现上其实看上去更像是真实的EEPROM,用户只需要直接写入或者读取RAM即可。 具体的原理分析在《001_Flash例程分析》、《002_S32K148 Flash相关文档解读》、《003...原创 2022-02-16 22:25:14 · 667 阅读 · 0 评论 -
1158_S32K148 FlexRAM与EEPROM大小关系
所有的型号不仅仅是2MB配置的型号都支持2KB的非交错配置扇区,而2MB的配置里面支持4KB的交错扇区。 这是前面已经看过的一段,这里提到了高达4KB的FlexRAM可以用来实现EEPROM或者说是传统的RAM功能。其中,EEPROM的实现机制是一个硬件机制。 这里有一个需要弄清楚的问题:前后这连孤单文档中的2KB以及4KB是否是有一定的映射关系?一般Flash实现的EEPROM应该都有一个内存和Flash的映射,是不是这样看来,只有2MB的配置是可以支持4KB的EEPR...原创 2022-02-16 22:23:16 · 959 阅读 · 0 评论 -
1157_S32K148 Flash相关文档解读
这么看,两个bank,一个主要是用来存程序而另一个则主要是用来存数据。 2M的flash其实是包含了NVM的512K的,这个跟我前面做程序调试的时候看到的数据是一致的。 过快或者过慢的时候都不应该被擦除。 擦除之后的状态为1,编程的时候只能够从1改成0。 从0到0的操作也是不允许的。 这个单片机的EEPROM仿真功能还支持加密。 这里倒是让我疑惑了一下,难道说只能够模拟出来4K的EEPROM吗? 另外,...原创 2022-02-16 22:21:28 · 878 阅读 · 0 评论 -
1156_S32K148 Flash例程分析
到此为止,一切都还是比较常规的实现方式。不过这里有一个ram code的使用方式,后面可以学习一下。 嵌入式MCU的最初的操作基本上都很相似,先进行时钟的初始化。这里同时把前面的buffer进行了数字的填充。为了能够更好了解这个例程,我把一些条件编译等信息直接改成了最终的有效分支,同时代码也按照我的习惯重新进行了排版。 中断类型是我第一次见到,之前用的flash驱动都是直接API调用,回调之类的使用其实不多。这里的中断的处理跟RTAOS不同,可能是demo根本没OS的...原创 2022-02-16 22:15:56 · 9021 阅读 · 0 评论 -
343_S32K144 CRC模块的使用
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 CRC模块的功能相对来说简单,但是要计算CRC的校验首先得有一致的多项式以及seed。其实,CRC校验的软件算法也非常多,在此之前我自己使用的更多的也是软件的算法。如果翻看博客的话,应该还有一个测试的记录。如果CRC切换成了硬件,速度以及可配置的简单程度都要好很多。 通常,网络传输有一个推荐的多项式。这个在很多工具中也是一个默认的配置,比如我接触到的INCA的CRC多项式...原创 2020-06-07 19:04:11 · 1715 阅读 · 1 评论 -
338_UDS诊断协议软件初步
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 近段时间计划学习S32K144,CAN相关的东西基本上都是驱动类的,但是如果要进入到工程阶段就得需要搭载部分协议栈。 一般来说,各种协议栈都是商用的,价格也都不便宜。不过,现在网络上也有一些可以用于学习的一些资料或者软件库文件。多少能够让我们学到一些基础的东西,...原创 2020-04-06 15:48:24 · 4927 阅读 · 0 评论 -
337_S32K144 CAN错误种类获取
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 这算是计划之外的一份学习总结,本来打算错误能够触发捕获到就结束这一项学习。不过,看了一下SDK的代码之后我发现其实这里还有一个小技巧值得去看看。这个技巧就是快速判断出buserr、busoff之类的错误是否发生了。 之前做PowerPC的驱动开发,习惯了半导体提...原创 2020-04-05 16:57:10 · 1964 阅读 · 0 评论 -
336_S32K144 CAN总线错误诊断
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,今天来看看CAN的错误诊断。关于这部分,如果要做到产品化的一些指标其实需要一些其他的东西。比如,BUSOFF的快慢恢复模式等。我这里看的仅仅是驱动实现的可能性,因此仅仅是看看使用这个芯片的时候这个如何提供基础的功能信息而不去做这部分的实现。...原创 2020-04-05 13:34:16 · 3867 阅读 · 1 评论 -
335_通过CAN通信实现printf
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 以前的学习笔记写起来,都有一种整理测试记录或者调试记录的感觉。我觉得其实这样虽然简明扼要,但是总是少了一种生活的味道。或许,以后把我的学习笔记写得更加生活化一点会更有意思。至于学习中的几个要点,只要是笔记的内容够短总能快速提取出来。 今天的学习笔记说起来有一点点...原创 2020-04-04 16:10:32 · 1687 阅读 · 2 评论 -
334_S32K144 CAN的DMA收发模式
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,昨天稍微深入学习测试了一下FIFO的接收模式,使用的是中断接收的方式,最终感觉让我打开了一扇新的学习大门。原来这个CAN的收发不仅实现容易,而且功能十分强大。 昨天调试FIFO接收功能的时候,使用的是中断模式。今天尝试一下DMA模式下的...原创 2020-04-04 15:10:21 · 4377 阅读 · 0 评论 -
333_S32K144 CAN回调函数
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,还是进一步深入CAN相关的知识细节。这一次学习小结一下CAN的几个回调函数,因为这个会关系到接下来我对几个协议栈相关知识的探索。不仅如此,整个CAN驱动是协议栈实现的基础,在学习协议栈之前肯定得有一个深入的掌握。 今天需要看看CAN的接...原创 2020-04-03 23:45:16 · 3573 阅读 · 2 评论 -
332_S32K144 CAN FIFO接收实现接收全部ID
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 最初看文档的时候,几种不同的FORMAT以及掩码把我看糊涂了。 先看看三种不同的format,其实这个还是好理解的。这三种format,决定了filter的作用。如果是选择A的话,那么就是所有ID的bit都是100%匹配的。如果是选择B或者C,那么只有一部分...原创 2020-04-02 21:56:50 · 5178 阅读 · 2 评论 -
331_S32K144 CAN FIFO初步
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,这次来看看CAN的FIFO接收模式。FIFO的功能是使用多个buffer级联,组成一个队列的方式实现队列的报文接收。使用FIFO,可以让驱动软件设计更加简洁。同时,FIFO在接收的能力上也是很强的,可以让我们在后期软件处理上有更多的设计尝试。...原创 2020-03-31 22:11:19 · 4204 阅读 · 3 评论 -
329_S32K144 CAN波特率修改
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,今天做一个简单一些的尝试,修改CAN的波特率。看了前面的CAN的简单实现,我感觉这个应该很容易。 常见的CAN的波特率配置有三种,250K、500K以及1000K。在使用的时候,一般分别对应的场景需求有J1939、UDS以及BootLo...原创 2020-03-30 23:31:51 · 3216 阅读 · 1 评论 -
328_S32K144获取CAN的默认配置
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习探索,这次看看CAN默认配置获取功能。这个函数之前在看文档的时候是看到过的,但是一直没在意。主要原因可能是因为我并不是很清楚这个接口可以做什么用。难道是用于反初始化之类的操作? 看着相应的信息,其实也是很熟悉,这部分我们打开S32DS...原创 2020-03-29 21:24:23 · 2815 阅读 · 0 评论 -
327_S32K144 CAN接收功能初步
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 前一阵子花了太多的时间来学习lisp,暂且稍微换一下相应的步伐。继续S32K144的学习,今天来看看CAN的接收初步。简单起见,我直接使用SDK进行测试。 注意到文档中的几个关键点: 为了能够使用CAN的驱动,首先得调用这个初始化的函数。这部分我们...原创 2020-03-29 17:01:54 · 5015 阅读 · 0 评论 -
316_S32K144 EVB 标准CAN配置
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,这一次来做一下CAN通信功能的一个小结。说起来,这算是一个迟到的小结,因为这个SBC uja11691耗费了我一点时间,中间的过程不是很顺利。 最初的配置,还是按照能够找到的Demo开始,然后增加到我自己的工程中。但是一直不成功,于是切...原创 2020-03-14 21:42:14 · 3560 阅读 · 6 评论 -
307_minmea GPS报文解析模块在S32K144上的使用
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,今天整理的这部分内容其实跟这个芯片本身没有特别紧密的联系,只是作为一个应用的尝试在这个平台上进行一下测试。 从minmea的项目中获取到的test代码,其实是在PC操作系统上进行测试的。这里,我算是切换一个方向在嵌入式的平台上进行一下集...原创 2020-03-08 19:53:32 · 971 阅读 · 0 评论 -
304_S32K144 FreeRTOS的工作时钟提升
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,这一次看一下FreeRTOS的工作时钟修改。其实,这就是一个简单的power-mode的切换。但是,在效果上能够看得出FreeRTOS的行为的变化。这种配置,应该载我们工程创建之初就进行修改,这样会让其他的软件适配更简单。不过,从实际的体验看,这...原创 2020-03-08 10:29:05 · 1218 阅读 · 0 评论 -
303_S32K144运行模式切换
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,这一次来探索一下运行模式的切换。这个功能能够让MCU进入更高速的运行模式或者是更低速的低功耗模式。其实,很多芯片都有这个功能,但是我自己的实践过程中似乎是没有什么这方面的实践经历。正好,借用这个小开发板来做一个简单的学习。 我先看了官方...原创 2020-03-07 22:11:41 · 3454 阅读 · 1 评论 -
299_S32K144 lptmr定时器使用
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144其实,这个应该跟看门狗的实践有很多类似点。归根结底就是一个时钟的设置。为了方便,我把这个定时器的主频设置为1M Hz,这样其实一个计数单位就是正好1us。定时器的设置我先设置为一个32位的最大值,这样应该长时间不会出现一次定时提示。这样,经过简单的初始化之后,启动...原创 2020-03-05 23:04:47 · 4498 阅读 · 0 评论 -
298_S32K144看门狗的使用
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144继续S32K144的学习,接下来看一下看门狗的使用。还是使用SDK,感觉可能会很简单。首先得添加看门狗的模块,添加后:为了能够计算超时,我应该先看看这个时钟信息。默认情况下,128K。我看了下这个超时的时间,类型是uint16。这样,即使是在极限超时的情况下,看门...原创 2020-03-03 22:47:18 · 2373 阅读 · 0 评论 -
294_S32K144 FreeRTOS获取剩余的heap空间
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144继续S32K144以及FreeRTOS的学习,这一次看看heap剩余存储的信息获取。在实际的工程中,随着内存不断被申请,这个资源很可能会成为短板。如果有一个可以实时查看heap剩余空间这样的功能,可以方便我们在软件的调试过程中知道当前的资源使用情况然后根据这个做相应的优化。找...原创 2020-03-01 20:29:46 · 1954 阅读 · 1 评论 -
293_S32K144 FreeRTOS守护程序启动监控
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144继续S32K144的学习,这一次继续总结FreeRTOS的部分功能。这次总结的对象是守护程序的启动监控。关于守护程序,我个人的简单理解是只有这个程序开启了之后FreeRTOS的各项功能才能够有序展开。如果在此之前,使用了一些FreeRTOS的接口的话可能就会导致一些系统的异常...原创 2020-03-01 18:42:09 · 691 阅读 · 0 评论 -
292_S32K144 FreeRTOS中获取任务的优先级
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144继续S32K144的学习,这次小结的对象还是FreeRTOS。这一次看一下任务优先级获取的一个接口。说起来,这个功能我暂时没有考虑到应该如何在我的应用中使用。但是,总归是一个可以纳入到OS本身工具箱的一个功能。为了能够获取所有任务的优先级,我们创建任务的方式有限得修改一下,增...原创 2020-03-01 18:23:41 · 909 阅读 · 0 评论 -
291_使用FreeRTOS的Tick hook
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144继续学习S32K144,这次基于这个芯片看一个FreeRTOS的功能。这次看的是FreeRTOS的Tick Hook功能。之前已经看过idle hook了,其实这个功能与之十分相似。启用相应的功能,需要配置一个宏参数。而SDK配合IDE提供了更加便捷的功能,我们可以仅仅增加一...原创 2020-03-01 17:04:50 · 1775 阅读 · 0 评论 -
290_基于FreeRTOS的串口接收功能
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144继续S32K144的学习,昨天实现了一个可靠的串口的接收功能。这也算是我自己的首次试水。当然,测试的结果看得出接收功能确实是很可靠了。不过今天继续看我的这个程序的时候,发现了一个问题:有几个FreeRTOS的任务被饿死了。看了一下,应该是两个原因导致:1,优先级设置的过高;2...原创 2020-03-01 15:41:23 · 7253 阅读 · 1 评论 -
289_S32K144串口的查询接收模式
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144继续S32K144的学习,还是继续串口的学习。因为我觉得前面实现的这种阻塞收发模式虽然稳定,但是还有改进空间。尤其是DMA的使用,在这种模式下似乎是不奏效的。其实,发送功能倒还好一点,接收功能,我觉得还是得实现查询的方式。查看接口信息,发现其实这个似乎也是已经实现了的一个功能...原创 2020-02-29 20:06:15 · 1486 阅读 · 0 评论 -
288_阻塞式收发提高串口的可靠性
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144继续S32K144的学习,还是针对串口。前面,在实现了基础的收发功能的时候,发现有时候会出现接收的数据丢失的问题。针对这个问题,首先查看了SDK是否还有其他的相关配置项,确认这个没有之后,应该就是接口使用的问题了。继续找接口,发现了如下接口:与之前使用的接口相比,这个是一...原创 2020-02-29 18:52:29 · 1138 阅读 · 0 评论 -
287_基于DMA的串口收发
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144DMA一直以来也是一个只闻其名的模块,在我的实际的实践中几乎没有用到。也许是我解决的问题大都不需要这么高端的功能就能够cover得了吧!还没有看文档,直接看了一下SDK的IDE可配置信息,似乎实现这个功能基于SDK的话是很容易的。SDK中做相应的配置,传输模式不再使用...原创 2020-02-29 18:34:41 · 2074 阅读 · 0 评论 -
286_S32K144串口接收功能
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144继续S32K144的学习,这一次尝试看看串口的接收功能。关于串口的使用,我一直用的非常少。可能是因为工作的行业原因,我接触到的更多的是CAN,而且CAN的实际使用也不是很多。前面,为了实现一个printf,使用了串口的打印功能。这一次,尝试做一下这个接收功能的实现。串...原创 2020-02-29 18:00:26 · 3789 阅读 · 0 评论 -
285_S32K144上基于FreeRTOS的精准周期性任务调度
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144继续S32K144的学习,这次看一下FreeRTOS的周期性任务调度。其实,之前的测试一直在用一个1000ms的周期性调度,但是,这个调度仅仅是用了一个1000ms的延时来实现的。虽然有一定的准确度,但是依然不是很准确。为了测试,这里我修改了一下FreeRTOS的配置,直接把...原创 2020-02-29 15:17:23 · 2879 阅读 · 0 评论 -
284_S32K144的RTC时钟修改
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,今天继续学习RTC时钟的功能。昨天简单让RTC时钟运行起来了,今天看看如何进行时钟的修改。 先凭借感觉直接配置下SDK试试,不行我再看文档。 首先,我觉得这个地方似乎是应该勾选,这样我应该随时都可以有权限去修改这个时钟信息...原创 2020-02-28 22:26:10 · 1622 阅读 · 0 评论 -
282_S32K144上的RTC使用
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,今天小结一下RTC的使用。时间有限,可能只能够看一个最基础的功能。先能够在默认情况下,看看运行效果。 直接从SDK中增加了相应的模块,然后默认配置生成代码。之后,增加如下测试代码: 两个函数,一个是初始化函数,一个周期性调...原创 2020-02-27 22:50:46 · 2295 阅读 · 0 评论 -
277_S32K144软件触发的ADC
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,这一次尝试的是S32K144的ADC,软件触发模式。设计的功能块会少一点,实现应该也容易。 首先,确认EVB上的资源: 相应的原理图: 根据上面的信息,配置SDK相应的选项。 通道信息配置:...原创 2020-02-25 23:09:10 · 3929 阅读 · 0 评论 -
276_浮点运算导致FreeRTOS卡在xQueueGiveFromISR
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,这一次整理一个我在学习中遇到的BUG。我的软件中有一个基于串口的printf功能,最初这个功能都是OK了。但是,当我增加了一个浮点运算之后,打印了一下之后不再打印了。使用调试器,查看到软件停在了xQueueGiveFromISR函数中。...原创 2020-02-25 22:52:23 · 2296 阅读 · 0 评论 -
275_S32K144快速实现FreeMaster功能的开关
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续S32K144的学习,这一次的学习内容还是FreeMaster。这是一个很好的功能,能够给我们的软件调试带来很多便捷之处。但是,目前我看到的这个软件包似乎可移植性并不是很好,尤其是我想移植到其他的平台的时候或许会有点麻烦。相比之下,一个简单的printf似乎要便捷的多...原创 2020-02-25 21:25:55 · 1496 阅读 · 0 评论 -
272_FreeMaster在S32K144上移植集成
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 前面看了FreeMaster的功能,的确是很方便。不过,能够运行的只是一个做好了的Demo。如何让这个功能增加到我现在一直学习维护的工程中呢? 移植很简单,从Demo中梳理出相关的代码,然后完善一下SDK的驱动配置即可。工作如下:分析Demo的工程,摘取出可...原创 2020-02-24 20:48:26 · 1869 阅读 · 0 评论 -
271_FreeMaster在S32K144上的使用
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续学习S32K144,这次来看一个小工具FreeMaster。其实,涉及到MCU程序的部分算是一个协议栈。 这个功能的移植暂且不去探讨了,值得一说的是在S32DS中这个功能以及做成了开箱即用的功能了。使用的时候,只需要从例子中导入即可。 之后,做代码...原创 2020-02-23 19:21:42 · 2023 阅读 · 0 评论 -
269_S32K144_基于串口的printf实现
完整的S32K144的学习汇总如下:https://github.com/GreyZhang/g_s32k144 继续学习S32K144,这次的功能小结主要是围绕printf串口打印的实现。之前这个功能已经尝试做过了,功能也不错。不过那个版本算是使用了一些NXP的库,又增加了部分串口驱动。我想做的这个与这个稍微有一点差异,我想实现的这个我希望他会是一个比较容易移植的通用模块。...原创 2020-02-22 21:21:57 · 3956 阅读 · 1 评论