- 博客(46)
- 资源 (4)
- 收藏
- 关注
原创 QT中线程的退出分析
软件实际开发过程中有好几处要实现这么一个功能:PC端软件“应用程序重启” ,本来这是一段比较简单的事情,但是因为重启软件报通信异常(错误日志中有记录通信异常的错误)。此问题解决起来一直在禅道中反反复复的关闭了又打开,没有得到彻底的解决。基于这种情况,我参与了此问题的解决,在解决的过程中发现了一些有意思的东西,并把问题记录了下来。这也就是今天这遍文章的由来。
2024-01-13 19:30:00 1063
原创 【安卓环境搭建报错的解决】
电脑中新安装的 Android Studio Giraffe | 2022.3.1 Patch ,运行 studio 系统工程,提示如下错误。在build.gradle.kts 中增加。
2023-10-17 21:45:00 954
原创 linux通用时钟框架(CCF)
linux 内核版本 v4.19嵌入式平台rv1109 , 文中代码出处。CCF背后的主要思想是统一和抽象分布在不同SoC时钟驱动程序中的类似代码。这种标准化的方法引入了时钟提供者和时钟消费者的概念:提供者是Linux内核驱动程序,它连接到框架并提供对硬件的访问,从而根据SoC数据表提供(使这些对消费者可用)时钟树(由于可以转储整个时钟树);消费者是通过公共API访问框架的Linux内核驱动程序或子系统;
2023-09-08 20:03:44 650
原创 往Buildroot中增加Qt项目
目的:应用开发时最初是没有和buildroot中一起编译时,后面应用程序写的差不多时,同事问我怎么把应用程序打包到文件系统中,然后发布时跟随文件系统一起发布,并且增加打包启动脚本。所以本文在已经可以单独编译的基础上把项目放入buildroot一起编译。应用程序单独可以编译(buildroot 有make sdk 单独打包编译环境)。本文简化了项目部分内容,仅以demo 为项目代号,记录在buildroot中增加qt项目的过程。环境:ubuntu20.04 、瑞芯微 RV1109 SDK。
2023-08-25 18:44:44 568
原创 linux tasklet 的分析与使用
tasklet 是利用软中断实现的一种下半部机制,本质上是软中断的一种变种,运行在中断上下文中.有关于软中断的分析,可以参考之前的文章,有详细的分析。
2023-07-26 20:45:00 326
原创 linux 软中断
关于软中断相关的代码在softirq.c中在interrupt.h 中定义了相关软中断类型的枚举enum {softirq.c中有可以在系统中 cat /proc/softirqs 查看软中断类型和当前的一些统计数值。
2023-07-25 20:45:00 294
原创 linux 驱动开发常用知识点与API
之前的读书笔记,以.c 文件的方式记录,在这里也以代码的方式记录最后笔记中有这么一段话:Linux设计中强调的一个基本观点是机制和策略的分离。 机制是做某样事情的固定步骤、 方法, 而策略就是每一个步骤所采取的不同方式。 机制是相对固定的, 而每个步骤采用的策略是不固定的。 机制是稳定的, 而策略则是灵活的, 因此, 在Linux内核中, 不应该实现策略。其中的机制与策略面向对象语言的抽象的思想很相似。
2023-07-20 19:45:38 245
原创 gcc 报错 /usr/bin/ld: /tmp/ccxxxx.o 错误的处理方法
查找了对应的so库 libworld, 头文件该有的都有,非常奇怪的问题。在使用gcc 编译简单的测试程序时发现报如下错误。libword.so 库的编译使用的是下面指令。最后的解决方案是加了 -c 编译成功。
2023-07-11 20:45:00 2501
原创 buildroot 下增加新的编译程序
编译期间可能会有报错,我这里编译bzip2时编译,报错的大意是下载的bzip源码解压格式错误,一看发现下载下来的文件为空,再检查发现下载路径错误 ,下方为修改后的BZIP2_SITE。prelink 只编译 pc上使用的版本,不编译在arm运行的,所以$(eval $(autotools-package)) 相关的内容不打开。发现还是没有把libiberty.a install 到对应路径 ,编译prelink时还是提示找不到对应的libiberty 库。到对应的目录找,看是否生成libiberty。
2023-06-21 18:45:00 321
原创 linux 交叉编译经验总结
在linux -arm 平台下,尽量用yocto ,builidroot构建环境编译软件,这样会省去很多麻烦,但是有时避免不了的需要手动进行交叉编译。所有觉得非常有必要对交叉编译进行一下总结。备注:文中主要是对之前交叉编译的总结,部分细节因为时间久远,可能丢失。交叉编译是比较麻烦的事情,各种依赖库,各种设置都要自己配置,而且在编译时容易出现各种各样莫名其妙的错误。是一件考验基本功和能力的事情。
2023-06-12 18:49:49 1104
原创 TI BQ27421电量计驱动的调试
在使用bq27421时,只进行了简单的配置(电池容量,充放电电压等等)然后让电量计自学习,测试时发现不同的机器电量表现不一样(关机时bq27421是断电的)。所有就有了上面的工作。对于我们的项目,硬件通过TI 提供的工具,对电池进行了一个轮回的充电放电,导出了电量的配置文件,就是上在提到的类似下方的文件,所以不能用原来的方式。这一段代码的意思是如果有相同的subclass 由组成32个字节的块写到电量计中(先读出块的内容,然后再更新要对应的字节)。AA为I2C的地址,AA后面的00表示寄存器地址。
2023-06-09 09:38:35 706 1
原创 linux GPIO驱动的一些理解
简单的说就是有些GPIO控制器是外接扩展的,不是内部芯片集成的,一般扩展的接口多为I2C的接口,I2C在读写外部控制器的寄存器时是有时序要求的,增加延时等,这时控制外部的GPIO就必做在进度上下文,或者threaded IRQ 这些允许睡眠(延时)的地方使用,不能在IRQ处理程序内使用。在一些驱动代码中经常看到gpiod_get_value,但有时也会看到gpiod_get_value_cansleep,二者有什么区别,什么时候该使用gpiod_get_value_cansleep。
2023-05-29 20:01:39 1062
原创 Linux Regulator驱动框架与应用
linux regulator 的文档Documentation/power/regulator下这里有几个概念要清楚:regulator 谷歌翻译意思为“调节器”,理解为控制电压,电流的一种装置。PMIC 电源管理芯片。Consumer : 由regulator 控制供电的设备。Constraints: 约束和限制电源参数。Power Domain:电源域,输出提供给输入的。字面意思比较难理解,可以参考一下面的。
2023-03-04 18:27:34 877
原创 rv1126/1109平台下的lt8912显示驱动的调试
瑞芯微rv1109 的mipi显示驱动调试,使用lt8912b 把mipi信号转lvds和hdmi
2023-02-20 20:09:22 2911 2
原创 linux 中断相关知识
下面中断的分析以vexpress v2p 平台为例使用的内核版本为 4.15.2当一个CPU进入中断异常后,会去读取GICC_IAR寄存器来响应中断,寄存器会返回硬件中断号。当处理器完成中断服务,必须发一个完成信号EOI(End of interrupt) 给GIC中断控制器,软件写EOIR寄存器GIC-400 32个内部中断用于连接CPU核和GIC中断控制器。分析中断代码常用的数据结构(注意下面的注释 )
2022-10-10 19:59:30 214
原创 链接脚本lds 相关的知识
本文主要记录与链接脚本相关的知识。文中内容多来自网上资料,或者书本内容。(解读的除外)。把重要的、常用的或容易忘记的知识点总结记录下来,供以后查询与巩固。
2022-09-24 22:35:31 460
原创 linux 平台驱动分析
本文记录在读关于platform 平台驱动的内核源码的一些记录。平台介绍:linux 内核版本:3.15 rv1108提供的sdk包中的内核。
2022-09-21 22:13:57 398
原创 RV1108 EMMC 程序下载失败原因分析
对于目前的SDK包,要想编译loader下的源码,在sdk目录下输入make build_loader ,再把生成的bin 复制到指定的目录Windows_Upgrade_Tool/AndroidTool_Release_v2.65/Image/ 再把名字改为RV1108_usb_boot.bin,与linux_upgrade.sh脚本一样 (make fww 正式烧录时会用到)会运行到MMC_Init,这里面会判断卡容量,如果容量大小2G,一些参数的设置是要读取ext_csd的,而不是读csd。
2022-09-14 21:45:00 1595 1
原创 ATS 2019 补充部分的解读
1.外推容积小于Max(FVC5% ,0.1L)2.用力呼气阶段峰值流速的10%-90% 时间小于等于150ms (这一条好像是新加的)。3.如果FIVC-FVC>Max(0.1,FVC0.5) ,这种情况下是不可接受的。翻译如下上面也说明FIVC最大吸气项对可不可接受的判断。正是因为FIVC比较重要,为了与之前提到EOT区别,引用了EOFE的名词。1.FV图要求X轴初始化最大值至少大于120%的FVC预测值,且能根据FVC的测量自动调整。要求FV图的比例为2:12.VT图X轴要示展示呼气零点前1秒的
2022-06-21 18:30:00 517
原创 MySQL 安装报错的解决方法
mysql 使用的是官网下载的安装包,mysql-installer-community-8.0.25.0.msi ,第一次安装时很顺利,因为某些原因要卸载重新安装。在重新安装时出现错误。错误提示如下出错的界面如下图所示找到提示中的my.ini文件,位置如下把my.ini文件copy到桌面,然后用系统默认的记事本打开,然后另存为,选择编码为ANSI退出安装程序,然后把桌面的my.ini 覆盖掉原来C:\ProgramData\MySQL\MySQL Server 8.0 路径下的my.ini。再重新安装。
2022-06-15 18:30:00 11350 9
原创 1.electron vue element-ui环境搭建
electron vue 环境搭建目录前言准备工作过程与问题参考资料目录前言之前一直用C,C++,对前端的知识了解的很少(仅在之前做打印时用了html)。最近因为某种原因,想开发一个类似于STM32CUBEMAX工具的软件。之前写APP时都是用QT。但这次真不想用QT了。决定学习一下electron。准备工作工作平台:win10安装node.js vscode 等工具。过程与问题基本环境弄好后,在poweshell下 管理员权限运行。在当前工程目录下,输入 vue init simu
2022-05-24 10:23:21 440
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人