Git 常用操作
前言 vscode 的 Git 和 GitLens 插件已经能完成大部分的工作,本文介绍只能在命令行下实现的常用操作 合并多条提交 合并最后 2 条记录: git rebase -i HEAD~2 打印如下: GNU nano 3.2 git-rebase-todo pick f9fb267 feat: 提交1 pick 88ede48 feat: 提交2 # 变基 86d...
前言 vscode 的 Git 和 GitLens 插件已经能完成大部分的工作,本文介绍只能在命令行下实现的常用操作 合并多条提交 合并最后 2 条记录: git rebase -i HEAD~2 打印如下: GNU nano 3.2 git-rebase-todo pick f9fb267 feat: 提交1 pick 88ede48 feat: 提交2 # 变基 86d...
概要 Linux 中有两种设置定时器的方法:内核接口和 Posix 接口。本文介绍 Posix 定时器的使用,内核接口参考Linux 内核学习笔记之定时器和时间管理。 配置定时器模式 线程模式 线程模式就是每次定时器触发时都开启一个线程执行任务,优点是使用比较方便,缺点就是每次都会创建一个线程,如果定时器触发比较频繁就会产生大量的线程,性能也会受影响。 #include <t...
概要 本文将介绍如何在 ARM 平台上移植 FreeRTOS,并创建一个线程用于 QP/C 中的 QV 内核运行,项目构建使用 CMake+GCC 环境。 FreeRTOS 移植 FreeRTOS 提供了多套移植,这里选用GCC/ARM_CM0。 主要需要修改的是FreeRTOSConfig.h配置文件,主要是把动态内存分配功能关闭了,使内存更加可控: /* * FreeRTOS...
本文将网络接口(network interface)简称为网口 还有文章可供参考:《LwIP应用开发实战指南》 no-sys 无系统示例 中断部分: // 以太网帧接收中断处理程序 void eth_mac_irq() { /* Service MAC IRQ here */ // 假设收到了eth_data_count长度的数据 // 从lwip内的内存池中分配空间来...
代码 假设我们有一个用 C++实现的“b 模块”,和 C 语言实现的“a 模块”。我们希望用 a 模块调用 b 模块,也就是 C 调用 C++。 // b.cpp #include "b.h" #include <iostream> void testfunc(int arg){ std::cout << "testfunc:"<< arg ...
问题 deepin 的官方仓库更新较慢,最新 deepin V20 版本的默认 GCC 居然还是 GCC8,很多特性都不支持。 下面介绍下如何在不使用容器的情况下安装使用 GCC12,同时不影响系统自带的 GCC。 安装 debian 的 rootfs 安装 debian 的 rootfs 是为了使用 debian 的仓库下载 GCC。 前往清华大学镜像站下载 debian ...
前言 阅读本文需要 QP 框架基础,建议先阅读《UML 状态图的实用 C/C++设计》(QP 状态机)学习笔记 介绍 QP/C 框架在其源码中提供了一个“飞行和射击”游戏示例,可以运行在 Windows 和 ARM 裸机双平台 构建 资源文件 该示例为 Windows 编写了一套模拟 bsp – qwin_gui,利用了 Windows SDK 中的绘图功能实现了虚拟的 LCD、...
clang-format 介绍 官网:https://clang.llvm.org/docs/ClangFormat.html Clang-Format 是一个由 LLVM 项目提供的开源工具,用于对 C、C++、Objective-C、Java(非原生代码)和 JavaScript 进行源代码格式化。 Clang-Format 使用 Clang 编译器的解析引擎来理解代码结构,它的目...
术语中英表 英文 中文 expression 表达式 aggregate 集合 compound literal 复合字面表达式 persistent side effect...
准备工具 virtualbox ubuntu server 2204 镜像 安装镜像 新建虚拟机,选中安装镜像,如果想在安装过程手动配置(如开启 SSH server 功能),勾选跳过自动安装: 点击下一步,配置 CPU、内存、硬盘等信息,一般默认即可,配置完如下: 之后可以直接运行虚拟机或者等配置完网卡等外设再开启。 配置网卡 桥接网卡 桥接网卡用于让虚...