- 博客(53)
- 资源 (4)
- 收藏
- 关注
原创 医疗器械法规标准相关资料
在前文医疗器械软件相关法律法规与标准中介绍了在软件设计过程常见的法规与标准,并给出部分标准如何查找和下载的方法,但是上文中列举的部分不全面,真实在产品设计到研发再到制造,整个链条中对应的规定与标准非常多。这里从更全面的介绍如何去查找这些对应的资料。
2024-08-26 20:45:00
1772
原创 医疗器械法规笔记
之前的文章中介绍了与软件开发过程中相关的法规(网络安全),同时介绍了如何查找相关行业标准,这些都是平时工作中遇到的细节问题,没有系统性的呈现出医疗器械法规相关的框架,一直想对法规与标准有一个全面的认识和总结,但发现想要有一个全面的认识和总结,需要花费较大的精力,是一件比较困难的事情。机缘巧合下,上周五翻了一下放在桌上很久,但一直没有看的书:《医疗器械质量管理体系内审员》(这本书为培训资料,市面上买不到),不禁感叹,这资料真心不错。帮我总结出了体系框架。
2024-08-26 20:07:41
848
原创 医疗器械网络安全
本文根据《医疗器械网络安全注册审查指导原则(2022年修订版)(2022年第7号)》,对医疗器械网络安全进行部分解读,根据自己的理解以及市检测所,省检测所培训与反馈的信息,列举出网络安全软件开发设计,文档编写时的注意事项。文档官方下载地址:国家药品监督管理局医疗器械技术审评中心医疗器械网络安全注册审查指导原则(2022年修订版)(2022年第7号)随着科技的发展,网络安全越来越重要,对于医疗器械也是一样,相关的法规与注册要求会越来越严格。不管是个人还是企业都需要加强网络安全的意思,提升网络安全相关的能力。
2024-08-20 19:45:01
1184
原创 插件管理系统实现
写了插件管理系统的设计思路,这一篇文章主要介绍插件的实现。主要从三个方面介绍实现;文中不会完整的介绍实现过程,仅介绍重要和实现过程中要注意的事项;
2024-08-17 15:08:39
561
原创 linux pinctrl 驱动初始化时机分析
硬件电路中经常会看到如下这样的控制,GPIO 控制电源,GPIO控制各模块的使能脚。有些GPIO一上电时随系统一起上电,有些有特殊的控制所以我以经常在设备树中看到如下写法以及这样这样仅在设备树中的配置,不用写驱动和代码就能控制GPIO的状态,确实比较省事。但是在一些情况下我们需要控制GPIO 的时序时,我们就得弄清楚,哪些控制在前哪些控制在后,例如系统启动时出现闪屏的现象;分析这个问题的原因,其基本原因是屏上电时序有要求,而屏的使能,与电源的控制又与pinctrl 相关;
2024-08-10 15:00:00
440
1
原创 插件管理系统设计
经过软件开发人员和测试人员长时间的努力,发布稳定的软件版本后,突然接到有对接某一系统的功能需求,这时是否为了这个功能需求发布下一版本?对接系统的甲方需求经常发生变化,每次发变化都需要更新整个软件?对接系统非常多,没法完全统一,为应对不同的需求,维护不同的版本?不同版本之间的升级又会引出新的问题,软件的维护压力增大,如何解决?这里引入插件的方式解决上述问题。基本思想:把业务逻辑抽象出来,“不变”的部分与“变化”的部分进行分离,变化的变化放入插件部分。插件本质上是一个动态库。
2024-08-10 12:45:18
1058
原创 QT中线程的退出分析
软件实际开发过程中有好几处要实现这么一个功能:PC端软件“应用程序重启” ,本来这是一段比较简单的事情,但是因为重启软件报通信异常(错误日志中有记录通信异常的错误)。此问题解决起来一直在禅道中反反复复的关闭了又打开,没有得到彻底的解决。基于这种情况,我参与了此问题的解决,在解决的过程中发现了一些有意思的东西,并把问题记录了下来。这也就是今天这遍文章的由来。
2024-01-13 19:30:00
1257
原创 【安卓环境搭建报错的解决】
电脑中新安装的 Android Studio Giraffe | 2022.3.1 Patch ,运行 studio 系统工程,提示如下错误。在build.gradle.kts 中增加。
2023-10-17 21:45:00
1637
原创 linux通用时钟框架(CCF)
linux 内核版本 v4.19嵌入式平台rv1109 , 文中代码出处。CCF背后的主要思想是统一和抽象分布在不同SoC时钟驱动程序中的类似代码。这种标准化的方法引入了时钟提供者和时钟消费者的概念:提供者是Linux内核驱动程序,它连接到框架并提供对硬件的访问,从而根据SoC数据表提供(使这些对消费者可用)时钟树(由于可以转储整个时钟树);消费者是通过公共API访问框架的Linux内核驱动程序或子系统;
2023-09-08 20:03:44
1104
原创 往Buildroot中增加Qt项目
目的:应用开发时最初是没有和buildroot中一起编译时,后面应用程序写的差不多时,同事问我怎么把应用程序打包到文件系统中,然后发布时跟随文件系统一起发布,并且增加打包启动脚本。所以本文在已经可以单独编译的基础上把项目放入buildroot一起编译。应用程序单独可以编译(buildroot 有make sdk 单独打包编译环境)。本文简化了项目部分内容,仅以demo 为项目代号,记录在buildroot中增加qt项目的过程。环境:ubuntu20.04 、瑞芯微 RV1109 SDK。
2023-08-25 18:44:44
1189
原创 linux workqueue工作队列的理解和使用示例
本文使用的内核源码为linux 4.15.2。对wrkqueue知识的较深入的分析和应用
2023-07-29 12:37:31
2122
原创 linux tasklet 的分析与使用
tasklet 是利用软中断实现的一种下半部机制,本质上是软中断的一种变种,运行在中断上下文中.有关于软中断的分析,可以参考之前的文章,有详细的分析。
2023-07-26 20:45:00
571
原创 linux 软中断
关于软中断相关的代码在softirq.c中在interrupt.h 中定义了相关软中断类型的枚举enum {softirq.c中有可以在系统中 cat /proc/softirqs 查看软中断类型和当前的一些统计数值。
2023-07-25 20:45:00
395
原创 linux 驱动开发常用知识点与API
之前的读书笔记,以.c 文件的方式记录,在这里也以代码的方式记录最后笔记中有这么一段话:Linux设计中强调的一个基本观点是机制和策略的分离。 机制是做某样事情的固定步骤、 方法, 而策略就是每一个步骤所采取的不同方式。 机制是相对固定的, 而每个步骤采用的策略是不固定的。 机制是稳定的, 而策略则是灵活的, 因此, 在Linux内核中, 不应该实现策略。其中的机制与策略面向对象语言的抽象的思想很相似。
2023-07-20 19:45:38
336
原创 gcc 报错 /usr/bin/ld: /tmp/ccxxxx.o 错误的处理方法
查找了对应的so库 libworld, 头文件该有的都有,非常奇怪的问题。在使用gcc 编译简单的测试程序时发现报如下错误。libword.so 库的编译使用的是下面指令。最后的解决方案是加了 -c 编译成功。
2023-07-11 20:45:00
4207
原创 buildroot 下增加新的编译程序
编译期间可能会有报错,我这里编译bzip2时编译,报错的大意是下载的bzip源码解压格式错误,一看发现下载下来的文件为空,再检查发现下载路径错误 ,下方为修改后的BZIP2_SITE。prelink 只编译 pc上使用的版本,不编译在arm运行的,所以$(eval $(autotools-package)) 相关的内容不打开。发现还是没有把libiberty.a install 到对应路径 ,编译prelink时还是提示找不到对应的libiberty 库。到对应的目录找,看是否生成libiberty。
2023-06-21 18:45:00
495
原创 linux 交叉编译经验总结
在linux -arm 平台下,尽量用yocto ,builidroot构建环境编译软件,这样会省去很多麻烦,但是有时避免不了的需要手动进行交叉编译。所有觉得非常有必要对交叉编译进行一下总结。备注:文中主要是对之前交叉编译的总结,部分细节因为时间久远,可能丢失。交叉编译是比较麻烦的事情,各种依赖库,各种设置都要自己配置,而且在编译时容易出现各种各样莫名其妙的错误。是一件考验基本功和能力的事情。
2023-06-12 18:49:49
1414
原创 TI BQ27421电量计驱动的调试
在使用bq27421时,只进行了简单的配置(电池容量,充放电电压等等)然后让电量计自学习,测试时发现不同的机器电量表现不一样(关机时bq27421是断电的)。所有就有了上面的工作。对于我们的项目,硬件通过TI 提供的工具,对电池进行了一个轮回的充电放电,导出了电量的配置文件,就是上在提到的类似下方的文件,所以不能用原来的方式。这一段代码的意思是如果有相同的subclass 由组成32个字节的块写到电量计中(先读出块的内容,然后再更新要对应的字节)。AA为I2C的地址,AA后面的00表示寄存器地址。
2023-06-09 09:38:35
1913
原创 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
1687
原创 Linux Regulator驱动框架与应用
linux regulator 的文档Documentation/power/regulator下这里有几个概念要清楚:regulator 谷歌翻译意思为“调节器”,理解为控制电压,电流的一种装置。PMIC 电源管理芯片。Consumer : 由regulator 控制供电的设备。Constraints: 约束和限制电源参数。Power Domain:电源域,输出提供给输入的。字面意思比较难理解,可以参考一下面的。
2023-03-04 18:27:34
1131
原创 rv1126/1109平台下的lt8912显示驱动的调试
瑞芯微rv1109 的mipi显示驱动调试,使用lt8912b 把mipi信号转lvds和hdmi
2023-02-20 20:09:22
4444
9
原创 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
280
原创 链接脚本lds 相关的知识
本文主要记录与链接脚本相关的知识。文中内容多来自网上资料,或者书本内容。(解读的除外)。把重要的、常用的或容易忘记的知识点总结记录下来,供以后查询与巩固。
2022-09-24 22:35:31
542
原创 linux 平台驱动分析
本文记录在读关于platform 平台驱动的内核源码的一些记录。平台介绍:linux 内核版本:3.15 rv1108提供的sdk包中的内核。
2022-09-21 22:13:57
475
原创 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
2111
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人