随笔分类 - Linux 应用开发
此类笔记主要分享 Linux 应用开发相关的知识
摘要:芯片通信测试 根据芯片手册,ATECC608B 的 7bit 器件地址是:0x35 root@linux:/usr/bin# i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- --
阅读全文
摘要:在多线程并发使用的时候,总是在运行过程中莫名其妙的 crash,后面才意识到 LVGL 本身不支持并发,加了互斥锁解决了。 在引入矢量字库时(freetype),又有启动时会概率性 crash 的问题,每次 crash 的地方还不一样,这个坑爬了好久,甚至都怀疑是不是 freetype 有问题,还好
阅读全文
摘要:使用目前最新的 Releases 版本 LVGL v8.2.0 ,移植好 freetype2 后测试,发现每次启动程序时会高概率出现屏幕显示全白色背景,无任何内容的问题。 打开日志开关,出现问题时会有如下打印: lv_font_get_glyph_bitmap: Asserted at expres
阅读全文
摘要:以下的代码很有意思,在相同时刻,相同的内存地址,数据居然会不一样。 #include <iostream> int main(void) { const int const_val = 3; int *nomal_pot = (int*)&const_val; *nomal_pot = 9; pri
阅读全文
摘要:应用场景 在工作上经常会遇到需要对接多个外设,如离线语音识别芯片、NFC刷卡器芯片等等,这些大部分都是通过UART、SPI等接口进行通信,且具有各自的数据包通信协议。 除了通信接口和通信协议(即数据封包解包)有差异外,这些数据处理逻辑都一样,所以可以将数据处理逻辑统一,将通信差异部分抽离出来,分别根
阅读全文
摘要:前言说明 在文中《【学习笔记】开源库之 - sigslot (提供该库存在对象拷贝崩溃问题的解决方案)》已经介绍过 sigslot ,此文主要应用在实际的工作项目中时,发现会有拦截信号的需求,而原生的 sigslot 不支持拦截。因此增加 sigslot 拦截特性,便于适应这种需求。 应用场景 在很
阅读全文
摘要:介绍说明 模板设计模式是一种非常简单的设计模式,其主要是利用了虚函数的特性实现。非常适合应用在一些算法、流程、业务逻辑是固定的形式,其中某些步骤的实现方式又无法确定下来的场景。 举例说明 以下为模拟某芯片基于串口通信的固件升级代码,可以提供一个 FirmwareUpgrade 的类用于使用者集成。考
阅读全文
摘要:介绍说明 学习 QT 的时候,觉得 QT 提供的信号槽机制非常有用,这种机制可以解决对象与对象之间通信中的耦合问题,原本想从网络上了解一下具体的实现思路用于项目中,意外的发现了用 C++ 实现的信号槽开源库 - “sigslot” 。它仅有一个 sigslot.h 源文件,简单而又满足了我想将这种机
阅读全文
摘要:添加资源 将存有资源文件的文件夹放到工程目录中,如文件夹名称为 “Image”,里面有 Luffy.png 文件。在 Qt Creator 中右击工程选择【添加新文件】。在弹出的对话框中的文件和类选择【Qt】->【Qt Resource File】。在弹出的对话框中填好名称如 “res”,然后选择【
阅读全文
摘要:QMainWindow QMainWindow 是一个为用户提供主窗口程序的类,包含以下几种类型部件,是许多应用程序的基础。 示例代码 void MainWindow::test() { // 菜单栏(只能有一个) QMenuBar *menuBar = this->menuBar(); this-
阅读全文
摘要:Lambda Lambda 表达式很有意思,相信很多人初次见到 Lambda 表达式都会不能理解有什么用,我也一样,看了视频教程之后,突然意识到,Lambda 真的是太好用了,它可以在某些情况下可以很大程度上简化代码。 应用场景 下面的代码给我的启发:实现通过信号槽的方式实现点击按钮时,触发修改按钮
阅读全文
摘要:介绍说明 学习 QT 的目的只是为了可以实现跨平台的具有GUI 的程序,以前用的 MFC,但是无法应用在嵌入式平台。后来在全志的 Tina 系统中有看到 QT ,因此特地去了解了QT,挺有意思的,UI也可以做到很漂亮,因此开始学习 QT 之旅。 按照视频课程顺序,摘录比较重要的知识点以及心得,下图给
阅读全文
摘要:介绍说明 这篇笔记承接《【学习笔记】C/C++ 设计模式 - 工厂模式(上)》文章,主要记录 “抽象工厂设计模式” 的学习笔记,上一次是以音频播放器来作为例子,主要是想体现出的是接口标准化的优势,但不适用于 “抽象工厂设计模式” 的示例,因此这里改为台式电脑作为例子。 上文说到工厂模式属于 “创建型
阅读全文
摘要:介绍说明 在年初七的时候,学习了工厂模式,今天在复习的时候发现漏了几个知识点,因此重写这篇文章,以循环渐进的描述方式来对比不同的使用技巧。 工厂设计模式属于 “创建型设计模式”,在我理解,就是为一个相同类型的功能模块抽象出一组接口定义,统一采用各种方案实现的相同类型的功能模块。主要的业务逻辑不必关心
阅读全文
摘要:前言 估计 2020 年写应用程序的机会比较多,之前一直在做嵌入式驱动程序和Android系统定制方面的工作,在应用程序方面积累的不是很多,因此迫切需要多学学应用编程这方面的知识。 之前在写小的应用程序的时候,总感觉会有更好的实现方式解耦,当时只是觉得要解决我所面临的瓶颈,可能需要找几个比较优秀的开
阅读全文
摘要:序言 第一次开始写博客,在日常学习和工作当中 CSDN 给我帮助很大,因此我也在 CSDN 奉献自己的经验,借此回馈 CSDN 对我的帮助,希望自己的经验可以帮助需要的人,也方便自己后续复习之用,同时亦可以借此丰富自己和完善自己的知识体系。 介绍 Zbar 是一个二维码和条形码的开源解码库,因为有一
阅读全文