- 博客(36)
- 资源 (1)
- 收藏
- 关注
原创 esp32s3分区表配置及读写
按照如上配置完毕后,编译如下程序。程序中执行了2个操作,一个是想目标类型(USER_PARTITION_TYPE)首地址写入字符串“this is flash write test!然后申请一个字符串空间,将写入的文件读出到目标空间中。/*定义分区类型*/0x40/*定义分许子类型*/0x01/*定义目标分区指针*//*获取目标分区指针*/return;/*1-擦除操作*//*2-准备目标字符串*//*3-写入目标地址*//*4-读出目标地址*/
2024-09-19 00:06:24
1542
原创 qt msvc 调试异常处理记录
pro文件中添加如下说明,再次编译即可通过。1-打开msvc-version.conf文件。更换编译器后,重新构建程序出现如下异常。
2024-08-18 17:20:07
432
原创 qt “程序异常结束” dmp分析
qt程序执行过程中出现异常退出,软件中唯一体现的内容如下,对问题定位来有些难度,为了尽快准确地定位到程序异常点,借助windbg工具进行排查。如下是调试过程中实操,希望能对诸位道友有所帮助。windbg配置已亲测有效。使用过程中无需修改。按照步骤操作即可。后面有时间了备注代码含义。如下图:程序异常后将在debug目录或release目录中生成dmpDir文件夹,文件夹中即可看到生成的dmp文件。windbg工具获取路径如下:https://learn.microsoft.com/zh-cn/w
2024-08-18 11:31:36
972
原创 QObject::connect: Cannot queue arguments of type ‘QList<QString>‘
通过调用qRegisterMetaType()函数注册元类型,告诉Qt如何处理这种特定的数据类型。使用信号和槽时,QList无法当做参数被传递,报错“QList”要确认在“ qRegisterMetaType()”里被注册了。请注意,在使用qRegisterMetaType()注册自定义类型之前,确保已经包含了相关头文件,并且只需在程序中注册一次即可。说白了,就是qt 无法识别QList这种数据类型,需要通过函数“qRegisterMetaType()”告诉系统。
2024-08-04 11:52:26
600
1
原创 ESP32 在 Vscode中编译找不到对应文件或变量
选择下图中C/C++:Edit Configurations。如下图所示,即可解决demo编译问题。按ctrl+shift+p。
2023-07-19 00:32:16
703
原创 00-uboot下的调试
打断uboot启动后1、print/printenv: 打印当前uboot的环境变量print 环境变量名2、set/setenv: 新建/修改环境变量set 环境变量名 环境变量值3、save/saveenv:保存环境变量到emmcsave4、推出uboot继续加载boot5、常用的环境变量环境变量:bootdelay :启动后加载内核的延时时间bootcmd : 加载内核命令 bootcmd=ext4load mmc 2:1 0x48000000 uImage;b
2022-01-13 22:16:50
557
原创 07-platform_probe
1、platform_driver 函数中probe函数struct platform_driver { int (*probe)(struct platform_device *); int (*remove)(struct platform_device *); void (*shutdown)(struct platform_device *); int (*suspend)(struct platform_device *, pm_message_t state); int (*resu
2022-01-09 23:09:06
288
原创 06-platform_driver
接着05-platform_device的内容1、申请 platform_driver 结构体struct platform_driver { int (*probe)(struct platform_device *); // driver 和 device 匹配成功时执行 int (*remove)(struct platform_device *); //driver 和 device 任意一个 remove 时执行 void (*shutdown)(struct platform_dev
2022-01-09 21:33:31
328
原创 05-platform_device
1、platform平台总线模型就是把原来的驱动 C 文件给分成了两个, 一个是 device.c, 一个是 driver.c 。把稳定不变的放在 driver.c 里面, 需要变得就放在了 device.c 里面。平台总线模型将设备代码和驱动代码分离, 将和硬件设备相关的都放到 device.c 文件里面,驱动部分代码都放到 driver.c 文件里面。2、platform_device1)申请platform_device 结构体struct platform_device { const c
2022-01-09 18:41:01
657
原创 04-file_operations
file_operations填充1、open、read、write、release 参考ssize_t miscread (struct file *file, char __user *buf, size_t size, loff_t *loff){ printk("enter miscread success \n"); return 0;}ssize_t miscwrite (struct file *file, const char __user *buf, size_t size
2022-01-09 00:47:19
129
原创 03-杂项设备驱动框架
03-杂项设备驱动框架所有的 misc 设备驱动的主设备号都为 10, 不同的设备使用不同的从设备号。 主设设备号相同就可以节省内核的资源。需要的头文件如下:/*注册杂项设备头文件*/#include <linux/miscdevice.h>/*注册设备节点的文件结构体*/#include <linux/fs.h>主设备号查询:cat /proc/devices1、填充 miscdevice 结构体misc 设备用 miscdevice 结构体表示, misc
2022-01-08 23:04:07
509
原创 02-Linux驱动开发框架
Linux驱动开发框架1、驱动分为四个部分1)头文件#include <linux/init.h> //包含宏定义的头文件#include <linux/module.h> //包含初始化加载模块的头文件2)驱动模块的入口函数和出口函数module_init(入口函数名);module_exit(出口函数名);3)声明信息MODULE_LICENSE("GPL");4)函数的功能实现//入口函数static int hello_init(void){
2022-01-08 21:40:58
551
原创 01-Linux驱动开发环境配置
环境配置1、交叉编译器环境变量配置1)打开编辑.bashrc文档vi ~/.bashrc2)在末尾输入如下:export PATH=$PATH:/root/workspace/allwinner/A40i/bsp/lichee/out/sun8iw11p1/linux/common/buildroot/host/opt/ext-toolchain/bin/其中“/root/workspace/allwinner/A40i/bsp/lichee/out/sun8iw11p1/linux/com
2022-01-06 00:23:58
851
原创 类的构造方法
构造方法类中的特殊方法,主要用于创建对象特点:名称与类名完全相同没有返回值类型创建对象时,调用构造方法,不可通过句点调用。注意:如果没有在类中显示定义构造方法,则编译器默认提供无参构造方法对象在创建的过程中:开辟空间并为属性赋予默认值执行构造方法的代码将对象的地址赋值给变量构造方法重载构造方法可以重载。遵循重载规则。创建对象时,根据传入参数,匹配对应的构造方法即可。注意,在类中,如果没有显示定义构造方法,则编译器默认提供无参构造方法。如果已手动添加有参构造方法,则无参构造
2021-10-10 00:13:09
476
原创 面向对象笔记
什么是对象一切客观存在的事物都是对象,万物皆对象对象由两个部分组成1、特征:称为属性,一般是名词,代表对象有什么2、行为:称为方法,一般是动词,代表对象能做什么程序中的对象首先,在程序中,必须具有和现实中相同的对象,用以模拟现实世界然后,使用程序中的对象代表现实中的对象,并执行操作,进而解决现实问题类在一组相同或类似的对象中,抽取出共同的特征和行为,保留所关注的部分属性:通过变量表示,又称为实例变量语法:数据类型 属性名位置:类的内部,方法的外部实例对象,在未赋值前,实例变量的默认
2021-10-09 23:52:18
75
原创 C语言动态内存分配
动态分配内存存储区基本分类静态存储区:全局变量,静态局部变量(程序进程或线程结束后释放)动态存储区:栈:非静态局部变量(出局部变量作用域就被释放)堆:用户自行决定何时释放,用free进行操作,若不释放,则一直使用至程序结束;动态分配内存的库函数在动态分分配内存开始,需要引入如下库函数#include <stdlib.h>在 C 库函数 void *malloc(size_t size) 分配所需的内存空间,并返回一个指向它的指针。size – 内存块的大小,以字节为单位。
2021-10-06 16:13:31
102
原创 01-第一个APP程序及基础知识笔记
打开project界面:选择 View > Tool Windows > Projectactivity 是提供界面 (UI) 的一种应用组件。其他组件(如 WorkManager)可使应用能够在没有界面的情况下执行后台任务。app > java > com.example.myfirstapp > MainActivity这是主 activity。它是应用的入口点。当您构建和运行应用时,系统会启动此 Activity 的实例并加载其布局。app > res &
2021-09-19 16:03:52
202
原创 JS读取本地文件
HTML&js 读取本地文件<div> 请输入文件<input type="file" id="myfiles" onchange="myfileImport()"></div><script> function myfileImport() { var selectedfile = document.getElementById('myfiles').files[0]; var name1 = selectedfile
2021-08-29 19:40:20
546
原创 Vue基本操作学习记录
#:id选择器. :calss选择器1、导入开发版本的vue.js2、创建Vue实例对象,设置el属性和data属性3、使用模板语法把数据渲染到页面上el:挂载点vue实例作用范围:el选项命中的元素及其内部的后代元素data:数据对象vue中要用得数据定义在data中,data中可以写复杂类型的数据,渲染复杂类型的数据时,遵循js的语法即可##Vue指令:以v-开头的一组特殊语法1、内容绑定、事件绑定v-text:设置标签的文本值(textContent)默认写法会替换全部内容,使
2021-08-16 08:07:06
181
原创 STM32 hal_printf重定向操作
STM32 hal_printf重定向操作只需要在uart.c文件中添加如下代码, #include "stdio.h" extern UART_HandleTypeDef huart1; uint8_t ch; uint8_t ch_r; /*fputc*/ int fputc(int c, FILE * f) { ch=c; HAL_UART_Transmit(&huart1,&ch,1,1000); return c;
2020-12-13 12:18:00
1688
2
原创 python读取excel多个sheet页并合并成一页
python读取excel多个sheet页并合并成一页import xlrdimport xlwtdata = xlrd.open_workbook("database.xlsx")workbook = xlwt.Workbook()worksheet = workbook.add_sheet('sheets2one')'''sheet页'''page0 = len(data....
2019-10-12 21:43:37
2270
原创 python xlrd&xlwt应用 以文本形式存储数字 数字前补零
python xlrd&xlwt应用xlrd常用的文件读取操作1、常用单元格中的数据类型2、导入模块3、打开Excel文件读取数据xlwt常用的文件写入操作1、新建一个工作表2、创建一个sheet页3、写入对应的元素单元新表格保存元素例程:xlrd常用的文件读取操作最近碰到一个问题,读取excle数据并以文本形式存入。部分数据前需要补“0”处理。参照https://www.cnbl...
2019-10-11 22:01:17
5129
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人