自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 利用零碎时间考了个PMP证书

开始工作已经6年了,虽然对于工作内容也已得心应手,但是在自己的认知中却仅仅依靠经验和直觉,并没有一套系统性的方法论以及思维习惯,本质上还是项目管理层面的。并且得知身边很多人都已经考了PMP证书,也因此,在今年3月份的时候决定要试一下,一开始经过咨询得知如下信息:1.该考试必须要报培训班(给你提供课时,因为这个证书除了考试通过,还要通过培训班获得课时);2.该考试的考试费为3900元(补考也是要交补考费的好像是2400);3.每年都有多次考试时间点,3月报名是参加5月27日的考试;

2023-08-26 09:02:40 142

原创 插拔232通信线导致串口接收停止(使用DMA)

综上分析,HAL的中断异常处理中会清除DMAR导致DMA停止接口不能执行停止逻辑,以及内部调用的终止接口将状态置为异常状态,以及没有将Rx状态清除,导致重启也无法执行。在HAL库中没有那个接口能够逃过这个状态锁,因此,我们仅能执行重新初始化,将整个串口初始化,才能将这些锁置位。经过重新初始化的尝试,DMA总线重启成功,数据接收也恢复正常。

2023-05-22 22:15:03 529

原创 STM32H750串口接收数据出现丢字节以及使用DMA出现内容错误问题

本次的问题主要原因如下:1.外部频繁关闭总中断,导致串口接收中断无法及时收到数据,进而导致出现丢失字节的问题;2.DMA方式会将串口接收的数据自动放到指定的RAM地址中,但是系统开启了D-cache,所以程序中访问的数据并不是实际的RAM中的数值,所以这种非一致性导致软件读取到的内容不是最新的;本次遇到的是接收的问题,同样的分析思路,我们在执行数据发送时是否也会有发送的字节间隔并不是连续的(被关闭总中断影响),那么对方在接收时是否也会出现错误断帧的问题?

2023-05-07 21:40:17 2572

原创 TouchGFX曲线控件绘制性能慢问题

到此也就完成了开源部分的全部分析,优化方向大体包括如下:通过循环内存缓存数据,对于新增点直接填充到缓存,不再从Nor中读取;增加画布大小;将通道和曲线以及栅格进行绘制合并;循环内存中还要缓存轮廓的相关数据,避免重复计算;直接打点显存,不再使用画布(这样也就不需要增加画布大小了);

2023-03-05 16:25:44 387

原创 STM32 cache使用过程中的风险问题

在 Cortex-M7 内核里面有一个 I-Cache 和一个 D-Cache,它们是实实在在的高速存储器。在实际的使用过程中我们一般为了提高执行性能,我们会同时将I-Cache打开,以提高指令的执行速度,将D-Cache打开,以提高数据的执行速度。本次问题就是以上两个问题相继发生导致的问题,手动触发访问最后一个字节也的确能够触发相同的内核错误。一次偶然的机会,将程序烧写在片外运行时,连续运行2h之后,程序会死机;进入调试,发现当出现死机时,调试器会提示内核错误,导致无法继续调试;

2023-02-20 22:01:44 455 1

原创 下定决心考软考(高级)

为此,今年打算一定要考个软考高级,算是给自己一个奋斗的小目标,抛开这个证能够给我带来什么,我觉得更重要的是给了我奋斗的方向,让迷失的自己重新有了重要的事情,并且工作4年后,在公司里也担任起技术平台的管理者,这个考试也算是让自己更加系统地掌握系统架构设计地一整套理论知识,再结合自己的工作经历,让自己也更加完善和成熟。随着工作的时间越久自己内心的危机感也就越强,看着自己的能力却逐渐地区域平淡,内心多少还是有些担忧的,总想让自己忙起来,有点新的方向,不断提升自己的能力。

2023-02-20 21:40:34 69 1

原创 STM32边沿检测频率出现较大偏差问题分析(相序检测篇)

相序检测逻辑中的问题可以归结为如下:执行路径异常,结果延时先执行;延时的效果存在1ms的偏差;边沿的识别比较依赖电平判断,对外部的输入信号的波动比较敏感;单次采集不可靠,所以多次采集剔值求均值;

2023-02-19 09:45:06 682

原创 STM32边沿检测频率出现较大偏差问题分析(问题描述篇)

一款产品在使用STM32芯片作为主控芯片时,使用一路GPIO最为DI采集,然后通过4051多该输入引脚进行扩展,最终实现相序检测,但是在整机测试的过程中发现如下两个问题点:1.频率会偏大;2.相位差会出现极小以及极大多种异常情况;针对以上问题也进行了整机上的波形测量,的确发现了一些异常波形。

2023-02-05 22:32:56 458

原创 Fat32文件系统生成的csv文件显示的日期多出20

本次问题的主要原因如下:1.对Excel软件的自动调整日期功能不熟悉;之前仅知道列宽不足时,会出现#符号,并且之前也曾使用过表格的日期格式,也就是在输入日期时,可以按照格式输入日期,然后表格会按照设定的格式自动进行调整,当时使用时还感觉十分的方便。而此次的问题,就是之前的方便之处所带来的副作用。2.对文件的编码不够熟悉,也不够敏感;

2023-01-08 23:10:27 639

原创 STM32后备RAM无法正常使用问题分析

本次问题是首次使用备份RAM,由于对其不够了解,所以不知从何入手,一旦对其进行了解,那么也就算是成功了,本次问题的处理比较简单,大致可以总结成如下代码://使能后备RAM时钟//使能后备域的写(关闭写保护)//使能VBAT调压器//使能后备域的保存功能。

2023-01-04 23:43:24 1091

原创 开发TSC2046触摸芯片驱动问题分析(物理、模拟SPI分析阶段)

1.对于一个芯片的驱动开发,尤其是使用SPI或I2C接口的,要仔细研读它的数据手册,2.在遇到问题时,要将问题的表现和特征记录下来,然后绘制问题要因图,然后对问题进行分析,排除无关因素,并对各个因素进行排序,逐个进行验证,验证过程和解决过程要详细记录,这个案例在编写的过程中就深有体会,由于这个问题在解决过程中并没有记录,所以导致在后期整理时,思绪很混乱。3.在编写底层驱动时,不仅仅要考虑当前的驱动性能,还要考虑它的使用场景,然后再决定是使用查询方式还是使用中断方式等。

2023-01-03 20:58:31 669 6

原创 开发TSC2046触摸芯片驱动问题分析(触摸测量值分析阶段)

这一阶段最严重的问题就是一旦发送测量指令(在初始化时连续发送了两个测量指令),就会导致程序死掉(无法响应点击),并且重新烧写程序(不再发送指令),也无法恢复正常工作,只有重新断电再上电,才会恢复正常

2022-12-27 09:44:30 532

原创 开发TSC2046触摸芯片驱动问题分析(触摸状态检测分析阶段)

在为电阻触摸板的触摸芯片TSC2046编写驱动代码时遇到了各种问题

2022-12-17 20:11:36 817

原创 STM32移植USB驱动到RTX系统无法使用问题(USB分析/终篇)

本次USB移植过程遇到的问题,是由于:1.HAL库中的实现所依赖的一个时钟滴答被RTX占用,而RTX未开源,所以只能在RTX任务中使用RTX留出的os_time;2.USB的工作空间需求比较大,所以需要更大的系统堆栈大小;3.由于RTX内部有使用标准库的malloc进行缓存的申请,而我们移植的USB模块内部也使用了标准库的malloc,而且还是在中断中使用的;4.当前使用的系统中断和USB中断需要调至最高,否则会无法正常运行;

2022-12-15 20:55:54 386

原创 STM32移植USB驱动到RTX系统无法使用问题(malloc分析篇)

上一篇RTX篇首先移植的是USB 从机Slave工作模式的VCP(虚拟串口)类,在移植之前都是在裸机上进行了初步测试,都很正常,但是首次移植到RTX系统下之后,又出现了之前的死机现象,只是这次死掉的地方不一样,这次是进入到硬件错误,并且是在USB初始化之后

2022-12-14 21:46:49 297

原创 RK3568 开机自动执行脚本失败问题分析

本次问题是基于一个目的:需要板子在启动时自动执行pyenv的环境变量生效功能,不然每次都要手动执行,目前的RK3288使用的Ubuntu是18.04版本,使用网上的init.d的方式始终不会开机自动执行。

2022-12-14 21:33:19 840

原创 RK3568 Ubuntu系统实现统计棒图网页显示(入门)

此次的目的是将RK3568作为服务器,也就是在RK上进行统计数据的整理,以棒图的形式进行展示,用户可以通过网页的方式查看展示的棒图。

2022-12-13 22:20:26 282

原创 RK3568实现Modbus通信

到此也就完成了Modbus的RTU和TCP的所有实现工作,有了协议的支持实现仅是基础,后续还要对寄存器数据以及应用层协议进行定义,在该层协议的基础上二次开发应用,这才是最重要也是最复杂的,毕竟Python已经通过库的形式简化了我们的很多工作。需要注意,以上的参考代码都是基本的实现,并没有增加保护和检查以及异常识别机制,在实际的项目开发过程中是不能简单地使用以上代码,还是要通过完善的try机制来识别异常并能够保证系统的稳定运行以及异常中的自恢复。

2022-12-12 21:42:19 512 1

原创 关于DI采集边沿捕获的溢出问题

在实现DI的频率检测时,出现溢出事件与边沿捕获事件同时发生的问题,但是我们并不能区分两个事件的先后顺序,但是由于中断处理的时候需要运行处理代码,而这点执行时间会导致后一个事件的处理滞后,进而导致结果出现较大的偏差。

2022-12-11 12:48:34 136

原创 Firefly RK3568安装TensorFlow失败问题分析

本次问题是继上次RK3288安装TensorFlow成功之后,由于当时发现3288的那款开发板没有485资源,因此尝试使用RK3568,但是在安装过程中会出现失败,并且每次都是在执行grpcio这个库的building时报出out of memory的错误。

2022-12-09 22:26:27 520

原创 STM32移植USB驱动到RTX系统无法使用问题(RTX分析篇)

在USB移植前期,首先将USB模块移植到裸机板上,运行状态十分稳定,但是当使用RTX时,出现函数重复定义错误,修正这些错误之后,虽然不再有报错信息,但是运行一段时间之后,整个RTX系统滴答计数值不再变化,且程序进入硬件错误(程序死掉)。

2022-12-09 22:05:06 417

原创 Linux系统下安装TensorFlow2.3

RK3288安装TensorFlow2.3

2022-12-03 19:57:03 1026 2

原创 2021-08-23

双向链表是一个很好用的数据结构,FreeRTOS在用它实现就绪和等待链表,Linux内核也在它管理内核设备,我们也可以用双向链表来管理嵌入式的各个任务或者业务,甚至执行函数、接口函数,非常实用。...

2021-08-23 22:08:58 39

原创 2021-08-22

os并非简单地用定时器实现,其机制和实现方案更加安全和复杂。

2021-08-22 08:40:15 43

空空如也

空空如也

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

TA关注的人

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