自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱她就要努力

技术记录

  • 博客(699)
  • 资源 (1)
  • 收藏
  • 关注

转载 STM32HAL库UART中断的坑(HAL_UART_Receive_IT)

如果这是将HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRxBuffer, 1);如下图所示调用到了main中,将原本在usart文件中的调用注释掉后,竟然就不能正常运行了。在此做个记录,这个中断调用的问题影响了我很多工程,希望能给各位一个参考,也希望可以有大佬解释下这个调用的问题。这里无法正常接收串口数据,不知道其余定时器和其余通讯协议的中断是不是也得注意这一点。注意这里是usart的文件,将接收中断调用到用户代码的位置,程序可以正常运行。将usart1的中断开启。

2024-09-20 09:59:12 141

转载 SEGGER_RTT_printf()函数实现打印浮点、负数-示例

最近公司项目换另一款gsensor,用到了数打印。又不想使用串口来打印数据,在此做个笔录,通过修改源码方式实现。

2024-08-27 11:24:38 281

转载 keil使用 SEGGER RTT 打印信息

在你的jlink安装目录下,如:C:\Users\Software\SEGGER\JLink\Samples\RTT 目录下有。该工具在 jlink 安装目录下 C:\Users\Software\SEGGER\JLink。SEGGER_RTT_V766g.zip 压缩包,源码就在其中。解压并复制到工程目录。可以看到,在对于输出的窗口号才有颜色显示。已在STM32F103 keil上验证。2.添加到 keil 中(注意添加。

2024-08-23 17:08:41 109

转载 在MDK(Keil)下STM32进入“HardFault”异常错误查错调试方法

1、导致原因有很多,例如:直接使用未分配空间的指针、栈溢出等异常非法操作便会使程序进入“HardFault”异常状态。接下来在工程中,编译代码,并debug,之后全速运行,可以看到如下图所示程序进入HardFault异常。如下所示我们找到SP寄存器,0x200045B8即为栈地址,栈里面的值依次为R0~R3、R12、PC(Return address)、xPSR(CPSR或SPSR)、LR。如图我们看到划红线的地方,注意从右往左看。分别为0x0800427D和0x08004BFA。

2024-06-27 15:27:43 702

转载 使用板载RTC定时开机

原创文章,转载引用务必注明链接。水平有限,欢迎指正。2016年3月30日 Lemuntu(Base On Jessie) 3.10.37原载于Lemaker论坛。汇总于此。看ATC2603C手册的时候发现其内置硬件时钟(Real Time Clock,RTC),并且提供alarm功能,用于把设备从低功耗状态唤醒。7.2.5章节提到,PMU提供4种省电模式,且支持多种唤醒方式,包括按键、GPIO、RTC ALARM、红外线IR等,其中RTC ALARM可在S4深度睡眠状态唤醒设备。

2024-01-09 15:59:26 225

转载 BitBake使用攻略

​ 用于指定开源组件包(tar、git等)下载的存放路径,位于编译目标层的conf/local.conf.sample文件中(如有需要可在此文件中修改),这个文件将被解析到build/conf/local.conf文件中,默认情况下该变量指定的目录为build/downloads/,如果多用户在一台编译机器上使用,可以指定一个公共目录,避免重复下载,比如DL_DIR?​ 构建系统do_image根据需要动态生成支持的 do_image_* 任务,生成的任务类型取决于IMAGE_FSTYPES变量。

2023-12-04 10:21:44 632

转载 linux安全机制之dm-verity

Dm-verity 是 device-mapper 架构下的一个目标设备类型, 通过它来保障设备或者设备分区的完整性。Dm-verity类型的目标设备有两个底层设备,一个是数据设备(data device), 是用来存储实际数据的,另一个是hash设备(hash device), 用来存储hash数据的,这个是用来校验data device数据的完整性的。

2023-11-27 14:04:53 1221

转载 github上传大文件:this exceeds GitHub‘s file size limit of 100.00 MB

安装Git LFS依赖项和二进制文件sudo apt install curl12安装Git LFSsudo apt install git-lfs1验证Git LFS已被成功安装git lfs install1。

2023-11-24 14:07:17 917

转载 嵌入式Linux设置开机自动运行程序(基于BusyBox init)

在使用的嵌入式Linux系统中设置开机自动运行程序并不复杂,只要了解其脚本调用流程基本就可以了。

2023-11-16 15:34:33 997

转载 Git应用详解第十讲:Git子库:submodule与subtree

Git应用详解第九讲:Git cherry-pick与Git rebase一个中大型项目往往会依赖几个模块,git提供了子库的概念。可以将这些子模块存放在不同的仓库中,通过submodule或subtree实现仓库的嵌套。本讲为Git应用详解的倒数第二讲,胜利离我们不远了!subtree与submodule的作用是一样的,但是subtree出现得比submodule晚,它的出现是为了弥补submodulesubmodule不能在父版本库中修改子版本库的代码,只能在子版本库中修改,是单向的;

2023-05-09 11:23:22 1232 1

转载 Git - - subtree与submodule

目录。

2023-05-09 11:22:03 880

转载 关于NAND FLASH调试的一点总结

因为你要通讯,就需要通讯的电压,时序,甚至接口命令,这些都随着不同厂商,不同制程技术而不同,你作为手机制造商或者soc厂商,想要把每种新的 nandflash 集成到你的产品中,就要根据这些新的特性来花时间设计。10.如果 main 区域的 ecc 校验码字节数比较多,并且 spare 区域足够大的话,可以对存放在 spare 区域里的 main ecc校验码进行二次 ecc,这时生成的 ecc 校验码我将其称为 spare ecc,它一般会存放在spare区域的末尾,并不是必须的;

2023-05-04 12:23:10 729

转载 基于Linux下的Nand (Nor) Flash读写速度测试

找到我们需要的mtd_speedtest.ko文件,当然还有其他的一些测试文件,都可以使用。当前用了mtd_speedtest.ko来进行读写速度测试。(1)dev=4指的是当前的mtdblock4所挂在的MTD设备,例如当前使用的是nor flash的MTD分区4。将mtd_speedtest.ko文件通过ftp、tftp或者nfs的方式添加到板子上,使用一下命令即可。(2)count=1000指的是循环测试的次数。

2023-04-25 17:07:05 1380

转载 linux CTRL+C停止线程后释放资源

如果按ctrl+c时未做一些处理 ,可能会造成一些资源未释放,比如网络端口被占用。// ctrl+c退出时执行的代码。

2023-04-24 12:03:59 558

转载 android测试之getevent/sendevent

首先,adb shell进入android设备,运行getevent命令得到如下信息,为各类事件的驱动设备,每部。一次touch此8行是必须的,如果是longTouch呢,在touch的基础上,重复若干次第2~6行,即看起。值得注意的是使用getevent获取的数值都是16进制的,而sendevent使用的是10进制的,需要进行。如果是drag呢,在longTouch的基础上,xy坐标从起点到终点是渐变的,其他可认为一样。EV_ABS ABS_MT_PRESSURE 00000070

2023-04-24 09:45:01 710

转载 I2C协议要点总结

https://baijiahao.baidu.com/s?id=1747946282739071669&wfr=spider&for=pchttps://zhuanlan.zhihu.com/p/362287272I2C,IIC或者Inter-Integrated Circuit Bus飞利浦两线式串行总线,半双工同步传输类型总线,一根串行时钟线(SCL),一根串行数据线(SDA);SCL:主设备始终产生SCL;从设备如果有SCL控制功能,可以把SCL拉低,让主设备数据别发送那么快,可称为时钟拉伸。(比较

2023-03-30 07:59:19 191

转载 如何优雅的让fork后的仓库与原仓库同步

最常见的问题,当你fork了一个仓库以后,原仓库的代码又被修改了,这时候能平台并不会帮你自动同步代码到你fork以后的仓库。这时候你提交代码,提交合并请求时的版本就和原仓库的不一致了。这时候有什么好的办法解决问题呢?最简单粗暴地方法就是:删除自己的仓库,重新fork一个仓库事先把自己修改的代码保存好,然后删掉fork的仓库,接着重新fork一份原仓库,这时候再把fork的仓库克隆到本地,代码修改以后再提交。这可是大招哦,不能一上来就用了。要在最后实在没办法的情况下使用,我们还有更加优雅的办法。

2023-03-23 15:25:02 1424

转载 Git上fork后的代码仓库如何与原仓库进行同步

问题场景:最近公司项目组不允许个人在远程仓库建分支,要求每个人fork一个仓库,以后就在自己fork的仓库里提交代码,通过pull request将代码合并到主仓库。这里的问题在于,原来的主仓库更新后自己fork的仓库并不会自动同步,导致两个仓库的版本不一致。

2023-03-23 15:24:15 2107

转载 Git Fork操作与配置

我理解的git fork:将别人(张三)仓库包括文件,提交历史,issues等复制一份到自己的github账号下。我们在可以通过修改本地项目的代码,然后,给(张三)发送一个Merge Request,一旦他(张三)同意,那么自己的修改就提交到了他(张三)的仓库。之前,公司使用最多的是直接git clone公司的仓库,下载到本地后,修改提交到仓库,也就是下图的2、3、4步。但是,有的时候公司并不想让你自己去直接操作公司的仓库。

2023-03-23 09:28:50 516

转载 git补丁操作(git diff、git format-patch、git apply、git am)

Git 提供了两种补丁方案,一是用git diff生成的UNIX标准补丁.diff文件,二是git format-patch生成的Git专用.patch 文件。n指从sha1 id对应的commit开始算起n个提交。两种文件都可以用于后序打补丁,在应用时几无差别。信息,是类似如下格式的文本。

2023-03-22 21:22:31 1267

转载 安装vscode的时候没有勾选快捷方式用vscode打开文件,如何用vscode快速打开文件或者文件夹

3. 其中 E:\VScode\Microsoft VS Code\Code.exe 部分是你的vscode安装到的路径。2.需要在电脑桌面新建一个Open File With VS code.reg 文件然后用打开文件,将以下代码复制。1.需要在注册表里面添加内容可以实现,下面有一种简单的方式来完成这个操作。4.然后双击运行之后,你的电脑就可以快捷用vscode打开文件和文件夹了。版权声明:本文为m0_60687710原创文章,遵循。版权协议,转载请附上原文出处链接和本声明。

2023-03-19 23:04:18 1609 1

转载 最简单的 DRM 应用 & drm设备不工作

为了获取 drm 启动过程中的更多信息,在 uboot 的 bootargs 中加入 drm.debug=0x1f debug ,让内核打印 drm 的更多信息。其次是检查内核是否开启了相关的驱动,这里使用的是 lichepi nano,依赖的驱动是 SUN4I 系列的驱动。内核没有再去挂载 /panel 节点了,不过 drm 的启动还是没有成功。在设备升级新版内核后,发现没有 fb0 设备,开机没有打印 drm 相关的信息。中说的内容,将 .has_channel_1 屏蔽掉,drm 正常工作了。

2023-03-14 10:28:49 628

转载 《DRM 专栏》| 彻底入门 DRM 驱动

helper 函数的作用:drm_xxx_funcs 是 drm ioctl 操作的最终入口,但是对于大多数 SoC 厂商来说,它们的 drm_xxx_funcs 操作流程基本相同,只是在寄存器配置上存在差异,因此开发者们将那些 common 的操作流程做成了 helper 函数,而将那些厂商差异化的代码放到了 drm_xxx_helper_funcs 中去,由 SoC 厂商自己实现。5T技术资源大放送!包括但不限于:C/C++,Arm, Linux,Android,人工智能,单片机,树莓派,等等。

2023-03-13 23:48:51 2491

转载 【DRM】DRM Display Driver Guide

显示子系统是显示输出相关软件硬件的统称,它包括VOP 和 RGB 、BT1120、BT656、I8080、LVDS、MIPI DSI、EDP、DP、HDMI等显示信号输出以及与之对应的软件驱动。显示子系统硬件架构图之 VOP1.0 显示系统架构显示子系统硬件架构图之 VOP2.0 显示系统架构。

2023-03-13 23:28:06 2477

转载 Linux驱动开发系列:DRM(第十部分)

DRM,全称Direct Rending Manger。是目前Linux主流的图形显示框架。相比较传统的Framebuffer,DRM更能适应现代硬件。支持GPU、3D渲染显示等。DRM可以统一管理GPU、Display驱动,使得软件架构更统一、方便开发和维护。本文只介绍Display相关内容,GPU相关的,博主也不懂,无能为力,等以后学到相关的再来更新。从模块上划分,DRM可以分为三个部分:libdrm、KMS、GEM。l图1 DRM框架。

2023-03-13 23:03:22 2208

转载 LVGL 之 windows 上 lvgl 模拟器 基于 Visual Studio 搭建方法的简单整理

LVGL 的PC模拟器的使用。PC 模拟器的好处一方面是我们没有实际硬件的时候也可以学习lvgl,另一方面就是我们在实际设计GUI界面的时候可以大大减少烧录代码地次数。我们可以先在PC模拟器上设计好,然后再把代码移到嵌入式工程里,编译、烧录到板子里。lvgl 模拟器介绍LVGL(Light and Versatile Graphics Library)轻量级通用型图形库,是一个免费的开源图形库,提供了创建嵌入式 GUI 所需的一切,具有易于使用的组件,美观的视觉效果和低内存占用等特点。

2023-02-19 21:34:20 1239

转载 DBUS入门与C编程

D-Bus最主要的用途是在 Linux 桌面环境为进程提供通信,同时能将 Linux 桌面环境和 Linux 内核事件作为消息传递到进程。D-Bus(其中D原先是代表桌面“Desktop” 的意思),即:用于桌面操作系统的通信总线。D-Bus的主要概念为总线,注册后的进程可通过总线接收或传递消息,进程也可注册后等待内核事件响应,例如等待网络状态的转变或者计算机发出关机指令。D-Bus是为Linux系统开发的进程间通信。

2023-02-15 19:54:36 1141

转载 C语言获取wifi状态

获取wifi连接状态ioctl(sockfd, SIOCGIWSTATS, &iwr),SIOCGIWSTATS有的平台不支持。理论上getWirelessStatus函数返回的ssid和ipAddr都不为NULL表示wifi连接成功。

2023-02-15 14:06:35 408

转载 【华为Hilink SDK Linux系统开发】第三章:华为hilink SDK Linux系统网关适配

位置:hilink-sdk-src/adapter/network_adapter/hilink_network_adapter.c。位置:hilink-sdk-src/adapter/network_adapter/hilink_network_adapter.c。位置:hilink-sdk-src/adapter/sdk_adapter/hilink_sdk_adapter.c。位置:hilink-sdk-src/adapter/sdk_adapter/hilink_sdk_adapter.c。

2023-02-14 22:42:07 464

转载 Linux 获取本机IP、MAC地址用法大全

ifaddrs结构体定义如下:1structifaddrs23struct/**/4char*ifa_name;

2023-02-14 22:41:05 1753

转载 解决:/usr/bin/env: ‘python’: No such file or directory

在启动miniedit.py时出现:/usr/bin/env: ‘python’: No such file or directory。查看已安装的python版本,是已安装的。

2023-02-14 13:49:08 425

转载 linux 测试麦克风

如果你的系统有 /proc/asound/cards 路径,说明 ALSA 驱动已经使用上,可查看 sound devices:0[Intel也可以用 arecord 和 aplay 工具.其中 arecord 查看 microphone (capture or input device):[HDA IntelSubdevices: 1/1Subdeviceaplay 查看 speaker (output device) :$ aplay -l[HDA Intel。

2023-02-13 22:45:05 1245

转载 wpa_supplicant详解

在 wpa_supplicant中,有许多与外界通信的socket,它们都是需要注册到eloop event模块中的,具体地说,就是在eloop_sock_table中增加一项记录,其中包括了sock_fd, handle, eloop_data, user_data。a.因为wpa_supplicant是与网络接口对应的重要的数据结构,所以,首先分配一个wpa_supplicant数据结构的内存。g.调用wpa_supplicant_dbus_ctrl_iface_init函数初始化dbus 控制接口。

2023-02-13 11:15:19 884

转载 wpa_supplicant使用

wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序。wpa_supplicant是服务端,wap_cli是客户端,一般情况下使用wpa_cli就可以操作WiFi。但是它不支持所有的驱动,可以浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好SSID的无线网络,也就是使用前需要配置好wpa_supplicant的配置文件wpa_supplicant.conf。

2023-02-13 11:12:00 1192

转载 python3 pip3 安装包报错 Could not find a version that satisfies the requirement 解决方法

pip3 镜像源参考 :《python3 pip 更换国内 pypi 镜像 源》原因:pip3 镜像源问题 更换镜像源 ,当前使用的镜像源。

2023-02-12 03:47:23 6098

转载 ARM平台上蓝牙协议栈Bluez的移植使用和配置

蓝牙(Bluetooth),或称为蓝芽,是一种新式的无线传送协议,最初由爱立信创制,后来由蓝牙特别兴趣组订定技术标准。据说因为此技术尚在萌芽的阶段,故将Bluetooth以“蓝牙”的中文译名在台湾地区进行商业的注册,不过根据英文本身的意义直译,还是“蓝牙”较为贴切。蓝牙用于在不同的设备之间进行无线连接,例如连接计算机和外围设施,如:打印机、键盘等,又或让个人数字助理(PDA)与其它附近的PDA或计算机进行通信。目前市面上具备蓝牙技术的手机选择非常丰富,可以连接到计算机、PDA甚至连接到免提听筒。

2023-02-10 14:00:03 918

转载 Gitk运行报错:X Error of failed request: BadLength (poly request too large or internal Xlib length error)

在这个issues的解答中我解决了这个问题https://github.com/LukeSmithxyz/st/issues/130。运行gitk时,闪退报错,用上述连接的内容解决。执行之后我就可以正常提交带表情的commit了。包含表情符号的提交时 gitk 崩溃。

2023-02-03 11:01:12 455

转载 cmake和makefile区别和cmake指定编译器(cmake -G)

其实很多公司和项目就是直接使用make的,但make代码规则严格,语法过于复杂,在做跨平台和跨编译器时的管理更加复杂,移植到不同环境的成本过大。首先cmake是项目构建生成工具,cmake的代码可以与平台系统和编译器无关。makefile 可以理解为是make工具使用的代码,make读取makefile中的配置信息来实现编译、链接和部署。工具” 只是使用这些工具其实就能够编译出所有的目标,但由于命令过于复杂,编译的流程不好控制。也就是说cmake是用来生成makefile和其他项目生成工具配置的。

2023-02-02 14:33:58 657 1

转载 OTA升级的实现原理及核心流程

在升级的时候,新固件在后台悄悄下载,即新固件下载属于应用程序功能的一部分,在新固件下载过程中,应用可以正常使用,也就是说整个下载过程对用户来说是无感的,下载完成后,系统再跳到BootLoader程序,由BootLoader完成新固件覆盖老固件的操作。升级的时候,进入bootloader程序后先擦除老固件,然后直接把新固件下载到同一个bank中,下载完成后校验新固件的有效性,新固件有效升级完成,否则要求重来。A给B发送消息,A先计算出消息的消息摘要,然后使用自己的私钥加密消息摘要,被加密的消息摘要就是签名。

2023-01-17 22:57:39 2078

转载 QML与C++混合编程

与C++混合编程就是使用QML高效便捷地构建UI,而C++则用来实现业务逻辑和复杂算法。Qt集成了QML引擎和Qt元对象系统,使得QML很容易从C++中得到扩展,在一定的条件下,QML就可以访问QObject派生类的成员,例如信号、槽函数、、属性、成员函数等。QML访问C++有两个方法:一是在Qt元对象系统中注册C++类,在QML中实例化、访问;二是在C++中实例化并设置为QML上下文属性,在QML中直接使用。

2022-11-10 17:41:20 423

VS2019+wxWidgets-3.1.4的配置的模板工程(wxProject.zip)

配合博客https://wk0715.blog.csdn.net/article/details/108284799。

2020-09-01

空空如也

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

TA关注的人

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