自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (29)
  • 问答 (1)
  • 收藏
  • 关注

原创 ARM 虚拟机FVP环境搭建

ARM Fixed Virtual Platforms (FVPs) 是由 ARM 提供的一系列虚拟化硬件模拟器,用于在物理硬件可用之前开发和测试软件。FVP 模型非常适用于软件开发、验证和性能分析,涵盖了从裸机到操作系统和复杂 SoC 系统的各种应用。

2024-07-12 19:44:07 577

原创 WSL 安装

系统会自动下载并安装默认的 Linux 发行版(通常是 Ubuntu)。如果你已经安装了某个 Linux 发行版,也可以指定特定的发行版。启用并配置完 BIOS 后,你可以在 Windows 中确认虚拟化是否已启用。确认虚拟化功能已启用后,可以继续进行 WSL 和 Linux 发行版的安装。安装的 Linux 发行版,按提示完成初始配置(创建用户名和密码)。安装完成后,系统将启动该 Linux 发行版,要求你进行初始配置。并搜索你喜欢的 Linux 发行版,如 Ubuntu。所选的 Linux 发行版。

2024-07-12 14:24:46 528

原创 Windows安装West

West 是 Zephyr 项目的官方命令行工具,用于管理 Zephyr 项目的源码和依赖关系。它可以帮助开发者下载、更新和构建 Zephyr 项目。

2024-07-12 12:51:04 689

原创 CMake如何生成makefile文件

设置默认生成类型为 Releaseendif()# 定义构建类型及其编译选项通过上述步骤,CMake 可以生成 Makefile,从而在 Unix/Linux 环境下使用make进行编译。CMake 提供了更高层次的抽象和灵活性,可以生成不同平台的构建文件,不仅限于 Makefile,这使得它成为跨平台项目构建的强大工具。这些步骤和配置都可以根据项目的实际需求进行调整,以满足特定的构建需求。学习和掌握 CMake 的各种命令和选项,可以极大地提高项目构建和管理的效率。

2024-07-04 14:31:55 424

原创 CMake和Makefile关系

Makefile是make工具的输入文件,定义了如何构建项目。它适用于手动编写简单项目的构建规则,但在处理复杂项目时可能较为繁琐。CMake是一个更高级的构建系统生成工具,通过文件描述项目的构建过程,再生成特定平台的构建文件(包括Makefile它提供了更多的高级功能和更好的跨平台支持。简而言之,CMake可以被看作是一个更强大、跨平台的项目构建和管理工具,它能够生成Makefile,同时还能够生成其他类型的构建文件,简化复杂项目的构建和管理。下一篇文章讲解 CMake如何生成makefile文件。

2024-07-04 14:18:08 713

原创 VSCode中使用CMake管理

通过以上步骤,你可以在 VSCode 中高效地使用 CMake 配置和管理你的 C++ 项目。CMake Tools 插件简化了项目配置过程,而tasks.json和则帮助你集成构建和调试工作流。通过这种方式,可以在一个统一的开发环境中进行高效的开发和调试工作。

2024-07-04 13:50:05 533

原创 CMake之CMakeList.txt文件介绍

如果项目需要生成多个可执行文件或者多个库文件,可以分别调用和命令。MyProject├── src# 添加库文件# 添加可执行文件,并链接库定义一个库文件,可以是静态库(STATIC)或动态库(SHARED)。CMake 是一个非常强大的构建系统生成工具,通过编写和配置文件,你可以高度自定义项目的构建过程。无论是简单的单文件项目,还是复杂的多模块项目,CMake 都能提供灵活性和扩展性。通过理解和使用 CMake 的基本命令和高级特性,你可以高效地管理项目的构建流程。

2024-07-04 11:15:25 918

原创 VSCode工程中task.json的作用

tasks.json文件为开发者提供了一种便捷的方式来配置和自动化常见的任务操作。通过适当地配置该文件,你可以极大地简化项目的构建、测试和部署过程,使开发过程更加高效和有序。

2024-07-03 21:49:36 564

原创 VSCode使用Makefile管理工程

通过这些步骤,可以使用 Makefile 在 VSCode 中高效地开发、构建和调试项目。VSCode 的扩展和配置使得这个过程高度灵活和自动化,减少了开发中的摩擦成本。

2024-07-03 18:13:25 1200

原创 vscode 工程中 c_cpp_properties.json文件作用

提供更好的代码补全和代码分析功能。指定使用的编译器及其版本。设置头文件搜索路径和预处理器宏定义。为不同的开发平台定制不同的配置。合理配置文件,有助于提高开发效率和代码质量。希望以上说明对你理解和使用该文件有所帮助。8. 关于IntelliSense 模式的使用说明在 Visual Studio Code(VSCode)中,是微软为开发者提供的一组丰富的代码辅助功能,包括代码自动补全、参数信息、快速信息和代码片段等。这些功能有助于提高开发效率,减少错误,并使代码更具可读性。

2024-07-03 14:51:44 1365

原创 Linux上Fread读取长度不对的问题

为啥我读取长度没有达到文件data的长度,图片的上半部分会出现问题,而不是下半部分出现缺失。原因是BMP格式的文件是从左往右,从下到上扫描的,所以data offset比较小的地方是在图片的下半部分。BMP格式中的biSizeImage 字段指示后面的data的总长度,只需要按照这个长度读取data 就可以了;但是读取的图片始终是少一部分;读取BMP文件的数据,并将数据存储到申请到的data buffer中。文件的打开是以“r” 的模式打开,需要以“rb” 模式打开二进制文件。

2024-06-06 20:12:48 191 1

原创 快速排序算法

【代码】快速排序算法。

2024-06-06 10:37:48 175

转载 __attribute__((aligned(n)))与__attribute__((packed)) 区别 [转载]

_attribute__((packed))会让结构体以紧凑的方式进行排列,同样 #pragma pack (1)也会起到相同的效果,而__attribute__((aligned(n))) 实际上只影响紧随其后的变量或者结构体的对齐方式,而不会影响结构体内其他成员的对齐方式,当然编译器将会调整结构体的对齐方式,从而可能在结构体内部添加填充字节,以满足字节对齐的要求。此时aligned修饰的是具体的变量,并不会改变结构体的内部成员的对齐方式,仅仅只是改变结构体所定义的变量地址对齐方式。

2024-05-23 14:57:45 23

原创 基于MDK的代码优化

而该选项实现的机制是将每一个函数作为一个优化的单元,而并非整个文件作为参与优化的单元。对一个文件中的代码,有的函数使用到有的函数没有使用到,因为一个文件一般都是作为同一个section存在的,如果将该文件添加进来没有使用到的函数也会编译进来;可以看到--remove默认是enable的,添加与不添加都是一样的,意思是将没有使用到的section去掉,但是对于同一个段中的代码是没有办法优化的;对结果的确认可以通过查看map文件,使用的函数都会分配地址和和空间,没有使用到的函数都被remove掉了;

2024-03-07 15:21:20 234

转载 UTF8和Unicode

本质上来说:Unicode 是「字符集」 UTF-8 是「编码规则」字符集: 为每一个「字符」分配一个唯一的 ID(学名为码位 / 码点 / Code Point);编码规则: 将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)

2024-03-05 10:47:58 34

原创 字节序反转

return c;

2024-02-28 14:06:04 105

转载 tortoiseGit Clone Error: Incoming packet was garbled on decrypton

按如下修改tortoisegit的setting的 ssh.exe路径后, ssh.ext路径为git的安装路径,问题解决,tortoiseGit 拉取代码,提示, Tortoisegit Fatal Error,

2024-01-09 10:00:46 165

原创 C语言可变参数的使用

c/c++语言具备一个不同于其他编程语言的的特性,即支持可变参数。例如C库中的printf,scanf等函数,都支持输入数量不定的参数。////< 1个参数////< 2个参数////< 3个参数printf函数原型为 int printf(const char *format, …);从printf的原型来看,其除了接受一个固定参数format以外,后面的参数使用来表示。在c/c++语言中,表示可以接受不定数量的参数。

2023-12-15 10:34:57 55

原创 Makefile基础模板

Makefile基础模板

2023-09-12 11:43:18 89

原创 关于MDK对位域的操作选项

明明是 -1 为什么会和0比较会大于0?

2023-08-16 17:33:20 179 1

原创 双向环形链表

【代码】双向环形链表。

2023-07-27 13:55:34 114 1

原创 基于STM32+FreeRTOS+RC522的门禁系统

1. 系统采用FreeRTOS作为系统任务调用;3. 支持人体热释电红外识别,HCSR505;2. 采用STM32作为核心控制器;7. 支持RC522 射频刷卡开门;6. 支持OLED显示屏UI显示;8. 支持继电器的开关控制;4. 支持按键密码开门;5. 支持LED指示;

2023-06-26 11:45:43 322 1

原创 Raspberry PICO使用教程

Raspberry Pi Pico是树莓派基于 RP2040 芯片的微控制器开发板,支持使用C/C++ SDK 和官方的 MicroPython 接口。本教程介绍使用基于MicroPython进行开发。

2023-06-21 15:52:42 1802

原创 Git/TortoiseGit/Gerrit使用教程

现在很多大型项目管理都是用git + gerrit的方式进行的,git-review作为一种比较方便的代码review工具,这里介绍基于Linux和windows的代码提交工具,当然不是直接提交到库上,这里是提交到Gerrit等大家review通过了,就可以让负责人merge到远程仓库上了。

2023-06-21 15:47:47 616

原创 一种环形双向链表的操作

在BLE扫描过程中,由于Privacy地址的加入,TIFS的时隙不能满足解析耗时的时间处理,这里将解析和时序ACK分为两个步骤,比如scan_req的ScanA解析和回复SCAN_RSP 两个步骤。这就需要一种链表数据结构记录这两个步骤的动作,不同的设备使用地址和地址类型这两个变量来进行判断,链表作用是可以缓存多个设备并且可以实现有序性。(1)检查该设备的地址和地址类型是否已经存在,不存在就添加到链表中,(当然前提还需判断该设备是为Privacy地址,进行解析,但是解析失败或者解析成功);

2023-06-21 15:43:12 100

原创 一种队列设计方法

将队列的内存想象成数组g_global_queue产生无数个副本铺开到内存中(实际没有铺开还只是一个数组),如下图。数组当作队列来用的时候,传统的队列设计方法在判空和判满的时候会损失一个Item,这种在Item占用的内存比较大的情况下比较浪费资源,这里介绍一种能将数组成员全部利用起来的方法。当write_index和read_index 相差数组长度的时候,认为是满队列;当write_index 和 read_index 相等的时候,认为是空队列;

2023-06-21 15:34:03 37

原创 Qt调用C函数

如果在Qt cpp文件中直接调用.c文件中的C函数会出现无法找到C文件的问题;error: undefined reference to `vendor_app_handle()'这种情况有两种解决方法:1. 使用extern "C"(1)在头文件中直接使用#ifdef __cplusplusextern "C" {#endif#include "xxx.h"extern int vendor_app_handle(void);#ifdef __cpl

2023-06-21 15:15:20 1764

原创 Windows Git的安装

点击完成就可以了,上面的Generate Putty key pair的按钮是产生SSH key,后面用于获取远程仓库的权限,可以在安装之后在开始菜单中找到。可以看到只有Git GUI和Git Bash,并没有windows的可视化操作,下面就需要安装TortoiseGit了。git是真正要是使用的工具,TortoiseGit是对Git接口的封装,以便于Windows可视化使用。(1) 双击.exe文件运行,记录下git的安装目录,因为后面TortoiseGit需要设置git目录。分别下载最新的安装程序。

2023-06-21 14:46:50 220

原创 串口接收语音工具

1. 支持串口对PCM RAM Data的数据接收。先保存才能播放,播放的是本地存储的文件;使用Qt实现一款串口接收语音的工具。16bit 16bps的语音数据。4. 语音数据的存储和播放。2. 支持指令发送除法语音。3. 指令数据的配置。

2023-06-16 17:17:12 107 1

原创 二进制数和文本互转工具

1. 如果对应的文件路径有填写就使用文件路径下的文件提取内容;2. 如果文件路径不填写就按照文本框中的内容进行处理;3. 文本转二进制,自动删除无效字符;1. 二进制转文本。

2023-06-16 10:24:56 744 1

原创 QT发布软件

windeployqt.exe是Qt自带的Windows 平台发布工具,它可以自动为一个应用程序复制其运行所需的各种库文件,插件和翻译文件,生成可以发布的目录。Qt Creator 完成对release版本编译完成之后,就需要将exe文件发布出来。单纯的只拷贝exe文件是不能运行的,exe的运行需要依赖很多的Qt库;在命令行中切换目录到新建的exe所在的文件下面执行 windeployqt test_v0.exe。这样子exe的打包文件就做好了,exe在这个文件夹下面就可以双击运行了。

2023-06-13 19:24:11 289 1

原创 SM2国密算法验证工具

通过Qt编写看一款SM2国密的验证工具,如下图:

2023-06-12 11:30:26 769 4

原创 QT Creator无法识别头文件问题

创建项目的时候明明将所有的头文件都添加进来了,但是仍然报无法找到指定的头文件的问题;使用的是Qt Creator 4.2.1 (Community)

2023-06-06 17:51:06 2423

原创 解决Qt Creator分辨率问题

安装完成Qt Creator之后,Qt Creator主窗口的各个子窗口字体大小不一;Qt所在的目录: D:\software\Qt\Tools\QtCreator\bin。需要设置分辨率来进行适配;设置后重启软件, 问题解决!

2023-06-06 17:35:08 1656 1

原创 Makefile基础知识

一个工程中的源文件不计其数,其按照类型,功能,模块分别放在若干个目录中,makefiled定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至进行更复杂的功能操作,因为makefile就像一个shell脚本一样,其中也可以执行操作系统的命令。Makefile代码的好处就是--“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。

2023-06-06 17:26:33 299

原创 Git生成diff文件

1. git 打patch> git format-patch e795fefab2. git 应用patch先检查patch文件:git apply --stat newpatch.patch查看补丁是否能够干净顺利地应用到当前分支中: git apply --check newpatch.patch对于git diff生成的patch,你可以用git apply --check> git am file.patch导入到库中,如果执行时失败,则最好执行:&g

2022-04-09 15:16:17 829

原创 Windows git本地配置多个账户

Windows git本地配置多个账户

2022-04-09 14:56:58 3757

原创 基于WSL的RISC-V的GCC交叉工具链搭建

基于WSL的RISC-V的GCC交叉工具链搭建

2022-04-06 17:37:11 6363

微机原理交通灯课程设计

整个系统设计用到8254、8259、8255、AD0809等芯片,还用到的单元有LED显示单元(用于交通灯的显示)、数码管显示单元(用于每一阶段倒计时显示)、单脉冲产生单元(用于产生中断脉冲)、蜂鸣器、1.8432kHz的时钟源; 内含有源码!!

2023-06-28

基于C语言的学生成绩管理系统

基于C语言的学生成绩管理系统

2023-06-28

数电设计-基于multisim的交通灯设计

数电设计-基于multisim的交通灯设计

2023-06-28

基于STC89C52的电子台历程序

1. 支持AT24C02的外部EEPROM存储; 2. 支持LCD1602 液晶显示屏; 3. 支持DS1302 外部时钟,以及时间设置; 4. 支持矩阵键盘; 5. 支持音乐播放和蜂鸣器定时; 6. 支持18B20 温度测量;

2023-06-28

二进制和文本互转工具第二版

1. 如果对应的文件路径有填写就使用文件路径下的文件提取内容; 2. 如果文件路径不填写就按照文本框中的内容进行处理; 3. 文本转二进制,自动删除无效字符; 4. 支持二进制转AscII;

2023-06-28

Bluetooth Core v5.4

Bluetooth Core v5.4

2023-06-26

基于STM32+Si7021的温湿度采集系统

基于STM32+Si7021的温湿度采集系统

2023-06-26

基于STM32+FreeRTOS+RC522的门禁系统

1. 系统采用FreeRTOS作为系统任务调用; 2. 采用STM32作为核心控制器; 3. 支持人体热释电红外识别,HCSR505; 4. 支持按键密码开门; 5. 支持LED指示; 6. 支持OLED显示屏UI显示; 7. 支持RC522 射频刷卡开门; 8. 支持继电器的开关控制;

2023-06-26

基于TI-CC2540的蓝牙权威教程

基于TI-CC2540的蓝牙权威教程

2023-06-19

串口接收语音工具第一版

1. 接收串口上传的语音数据; 2. 支持给底层设备发送指令; 3. 指令可配置,存储在数据库中; 4. 支持接收数据的存储和播放;

2023-06-16

Qt第三方串口库qextserialport

1. 使用简单 2. 大数据的传输的时候比较稳定

2023-06-16

QCustomPlot Version 2.1.1

Qt画图的第三方插件: 使用方便快捷

2023-06-16

二进制和文本互转工具第一版

1. 如果对应的文件路径有填写就使用文件路径下的文件提取内容; 2. 如果文件路径不填写就按照文本框中的内容进行处理; 3. 文本转二进制,自动删除无效字符;

2023-06-16

国密SM2/SM3 算法验证工具

支持对国密SM2和SM3的验证。

2023-06-14

国密SM2/SM3验证工具

支持SM2,SM3

2023-06-12

GNU Makefile自学笔记

GNU Makefile自学笔记

2022-04-24

RISC Centos32 GCC安装包

gnu-mcu-eclipse-riscv-none-gcc-8.2.0-2.2-20190521-centos32.tgz

2022-04-09

RISC-V GCC Centos64安装包

gnu-mcu-eclipse-riscv-none-gcc-8.2.0-2.2-20190521-0004-centos64.tgz 在此记录免得服务器访问不到

2022-04-09

VC开发技术笔记

文档是基于Visual C++开发的技术笔记。

2015-01-19

SN65HVD230中文资料

SN65HVD230是德州仪器公司生产的3.3CAN总线收发器,主要是和带有CAN控制器的TMS320Lx240x系列DSP配套使用,该收发器具有差分收发能力,最高速率可达1Mb/s。

2015-01-19

window7的超级终端

由于window7没有超级终端,此软件可以实现window7上的超级终端。

2015-01-17

TI的官方协议栈BLE-1.4.0

该文件是TI的官方BLE-CC254X-1.4.0协议栈,用于TI的CC254X蓝牙4.0芯片的开发。

2015-01-17

51单片机NRF24L01+驱动

文件是51单片机驱动NRF24L01+模块的无线通信程序,包括发送和接收程序。

2015-01-17

QCustomPlot

QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,远比qwt方便和漂亮,可以自己使用两个源文件也可以自己编译成库文件,非常方便。

2015-01-06

STM32F103VET6最小系统板原理图

文档是STM32F103VET6的最小系统板原理图,JTAG,FLASH等。

2015-01-02

SD卡与TF卡的引脚定义

文档描述了TF卡和SD卡的引脚定义,SD卡有9个引脚,SD卡有8个引脚。

2015-01-02

HR911105A封装

Altium designer+HR911105A封装库

2014-12-30

ZStack协议栈中串口剖析

文章主要讲解了ZStack协议栈的CC2430串口的DMA和中断问题

2014-12-25

Qt绘制动态曲线

功能描述:用曲线来显示数据的变化情况。横坐标表示时间T,纵坐标Y。每隔一定时间取一个Y值确定纵坐标。能够世事变化坐标。

2014-12-06

STM32+uIP+ENC28J60网络实验

战舰的STM32开发的第57章,基于uIP协议栈的ENC28J60网络实验。

2014-11-06

网络调试助手NetAssist

一款精简实用的网络调试助手,能够支持UDP协议,TCP协议。方便网络测试和开发。

2014-11-06

清华大学MFC课件

清华大学的MFC教程,包含MFC类库参考手册,以及MFC的PPT课件等。

2014-11-06

ZStack-cc2530-2.5.1a.zip

TI ZStack-CC2530-2.5.1a TI ZigBee 最新协议栈,基于CC2530,完整支持ZigBee2007,ZigBeePro,学习ZigBee,物联网参考资源。 此为完整版21.4M!

2014-06-28

蓝牙BLE 4.0协议栈

TI低功耗蓝牙BLE4.0 ,V1.3 协议栈

2013-11-24

K10基础实验手册

本文档是freescale的一些基础教程,介绍了K10的开发环境的使用,基本外围硬件的操作和一些简单的使用技巧。

2013-09-24

S3C2440的中断的解析和应用

这篇文档讲述了ARM920T的中断机制,寄存器,中断流程

2013-09-22

arm学习笔记(1)

这个文档记录了arm裸机程序学习的过程中的一些注意点和未能解决的错误。

2013-09-22

arm学习笔记

映像文件一般由域组成,域最多由三个输出段组成(RO,RW,ZI),输出段又由输入段组成。文件讲述了这些段在Flash中存放的关系,以及运行时的关系。

2013-09-22

arm developer suite.pdf

主要是对ARM的开发环境的使用,即ADS软件的使用,英文版

2013-09-14

ADS LINKER GUID

ADS程序各段链接指导和软件设置,针对ARM程序的编写的指导。

2013-09-14

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

TA关注的人

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