- 博客(40)
- 收藏
- 关注
原创 STM32搭配Vscode+CMake方式进行项目管理配置需要的工具
ubuntuopenocdarm-none-eabi-gccvscodecortex-debug
2024-02-22 10:37:58 123
原创 基于cortex-M3,M4下硬件层、驱动层的解耦软件框架设计
通过对硬件层、驱动层、应用层抽象设计,对于硬件层、驱动层对外均有统一的读写接口,便于应用层的业务逻辑调用,避免应用层对于硬件业务逻辑变化,导致要同步进行改动的情况。该解耦设计框架通用于各类32子板程序,便于后续迭代开发及维护。可以通过子模块的方式引用到工程中。
2023-11-07 17:43:52 100
原创 stm32基于gcc编译方式引入linux模块加载方式作为初始化的管理
arm-none-eabi-size查看elf文件数据段。nm 命令查看编译文件数据段。
2023-09-25 11:26:54 119
原创 22种设计模式备忘
创建型工厂方法抽象工厂原型模式单例类模式建造者模式结构型代理模式桥接模式组合模式外观模式装饰模式适配器模式享元模式行为型观察者模式备忘录模式中介者模式迭代器模式命令模式责任链模式模板方法访问者模式策略模式状态模式
2023-09-20 09:32:38 31
原创 C++11标准库整理
链接https://cplusplus.com/reference/C Librarycassertcctypecerrnocfenvcfloatcinttypesciso646climitsclocalecmathcsetimpcsignalcstdargcstdboolcstddefcstdintcstdiocstdlibcstringctgmathctimecucharcwcharcwctypeContainersarraybitse
2023-09-19 17:23:28 47
原创 C++11 lambda
捕获变量lambda表达式可以通过捕获列表捕获一定范围内的变量,主要有以下几种情况:[] 不捕获任何变量[&]捕获外部作用域中所有变量,并作为引用在函数体中使用(按引用捕获)[=]捕获外部作用域中所有变量,并作为副本在函数体重使用(按值捕获)[=,&foo] 按值捕获外部作用域中所有变量,并按引用捕获foo变量[bar] 按值捕获bar变量,同时不捕获其他变量[this] 捕获当前类中的this指针,让表达式拥有和当前类成员函数同样的访问权限。如果已经使用了&或者=
2023-09-19 13:37:19 27
原创 c++11 decltype关键字
但事实上这样的写法并不能通过编译。这是因为在编译器读到 decltype(x+y) 时,x 和 y 尚未被定义。这样的代码其实变得很丑陋,因为程序员在使用这个模板函数的时候,必须明确指出返回类型。但事实上我们并不知道 add() 这个函数会做什么样的操作,获得一个什么样的返回类型。在 C++11 中这个问题得到解决。你可能会思考,auto 能不能用于推导函数的返回类型。
2023-09-19 11:40:31 28
原创 C++11 final 关键字
如果不希望某个类被继承,或不希望某个虚函数被重写,则可以在类名和虚函数后加上 final 关键字,加上 final 关键字后,再被继承或重写,编译器就会报错。因此,一旦一个虚函数被声明为final,则派生类不能再重写它。
2023-09-19 11:30:50 23
转载 c++11 override关键字
在main()函数中,我们创建了一个指向Derived类对象的基类指针basePtr,并调用basePtr->print()。由于我们在派生类中使用了override关键字,所以执行的是Derived::print()函数。Base类中有一个虚函数print(),并且在派生类Derived中,我们使用override关键字重写了该函数。在这个例子中,我们定义了一个基类Base和一个派生类Derived,Derived类继承自Base类。
2023-09-19 11:23:43 55
原创 创龙A40I内核适配
sysfs.c : 把该文件放到drivers/pwm/的目录下。linux-3.10/drivers/iio/adc 目录下。PWM1 : 此处的部分寄存器默认配置有错,需要修改。使能 Industrial I/O support。pwm.patch :把该文件放到源码根目录下。regaultor驱动使能。在设备上中添加该驱动信息。PWM5 ~ 7 配置。
2023-09-18 15:25:15 135
原创 Letcode(12)盛最多水的容器
给定一个长度为 n 的整数数组 height。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])。解释:图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。输入:[1,8,6,2,5,4,8,3,7]输入:height = [1,1]返回容器可以储存的最大水量。说明:你不能倾斜容器。
2023-09-07 09:37:56 23
原创 Letcode(11)判断子序列
字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)。如果有大量输入的 S,称作 S1, S2, …, Sk 其中 k >= 10亿,你需要依次检查它们是否为 T 的子序列。在这种情况下,你会怎样改变代码?给定字符串 s 和 t ,判断 s 是否为 t 的子序列。
2023-09-05 16:46:55 26
原创 Letcode(10)移动零
给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。请注意 ,必须在不复制数组的情况下原地对数组进行操作。输入: nums = [0,1,0,3,12]输出: [1,3,12,0,0]输入: nums = [0]
2023-09-05 15:58:50 26
原创 CMake指令大全
这里介绍一下常用的命令(CMake 2.8 的命令可以在此查询):http://www.cmake.org/cmake/help/v2.8.8/cmake.html#section_Commands
2023-09-05 11:12:19 217
原创 Letcode(9)压缩字符串
输入:chars = [“a”,“b”,“b”,“b”,“b”,“b”,“b”,“b”,“b”,“b”,“b”,“b”,“b”]输出:返回 6 ,输入数组的前 6 个字符应该是:[“a”,“2”,“b”,“2”,“c”,“3”]解释:“aa” 被 “a2” 替代。输出:返回 4 ,输入数组的前 4 个字符应该是:[“a”,“b”,“1”,“2”]。输入:chars = [“a”,“a”,“b”,“b”,“c”,“c”,“c”]输出:返回 1 ,输入数组的前 1 个字符应该是:[“a”]
2023-09-05 09:27:31 23
原创 Letcode(8)递增的三元子序列
如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ,使得 nums[i] < nums[j] < nums[k] ,返回 true;解释:三元组 (3, 4, 5) 满足题意,因为 nums[3] == 0 < nums[4] == 4 < nums[5] == 6。解释:任何 i < j < k 的三元组都满足题意。输入:nums = [2,1,5,0,4,6]输入:nums = [1,2,3,4,5]输入:nums = [5,4,3,2,1]解释:不存在满足题意的三元组。
2023-09-05 09:25:09 19
原创 Letcode(7)除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。请不要使用除法,且在 O(n) 时间复杂度内完成此题。输入: nums = [-1,1,0,-3,3]输入: nums = [1,2,3,4]输出: [24,12,8,6]输出: [0,0,9,0,0]
2023-08-31 17:43:08 20
原创 Letcode(6)反转字符串中的单词
注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。s 中使用至少一个空格将字符串中的 单词 分隔开。解释:如果两个单词间有多余的空格,反转后的字符串需要将单词间的空格减少到仅有一个。返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。给你一个字符串 s ,请你反转字符串中 单词 的顺序。解释:反转后的字符串中不能存在前导空格和尾随空格。输入:s = “a good example”
2023-08-31 15:30:31 30
原创 Letcode(5)反转字符串中的元音字母
元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现不止一次。给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。输入:s = “leetcode”输入:s = “hello”输出:“leotcede”输出:“holle”
2023-08-31 10:32:07 15
原创 Letcode(4)种花问题
给你一个整数数组 flowerbed 表示花坛,由若干 0 和 1 组成,其中 0 表示没种植花,1 表示种植了花。另有一个数 n ,能否在不打破种植规则的情况下种入 n 朵花?能则返回 true ,不能则返回 false。假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不能种植在相邻的地块上,它们会争夺水源,两者都会死去。输入:flowerbed = [1,0,0,0,1], n = 1。输入:flowerbed = [1,0,0,0,1], n = 2。
2023-08-30 17:27:18 28
原创 Letcode(3)拥有最多糖果的孩子
孩子 1 有 2 个糖果,如果他得到所有额外的糖果(3个),那么他总共有 5 个糖果,他将成为拥有最多糖果的孩子。孩子 4 有 1 个糖果,即使他得到所有额外的糖果,他也只有 4 个糖果,无法成为拥有糖果最多的孩子。孩子 2 有 3 个糖果,如果他得到至少 2 个额外糖果,那么他将成为拥有最多糖果的孩子。输入:candies = [2,3,5,1,3], extraCandies = 3。输入:candies = [4,2,1,1,2], extraCandies = 1。
2023-08-30 16:57:14 30
原创 Letcode(2)字符串的最大公因子
对于字符串 s 和 t,只有在 s = t + …+ t(t 自身连接 1 次或多次)时,我们才认定 “t 能除尽 s”。给定两个字符串 str1 和 str2。返回 最长字符串 x,要求满足 x 能除尽 str1 且 x 能除尽 str2。输入:str1 = “ABABAB”, str2 = “ABAB”输入:str1 = “ABCABC”, str2 = “ABC”输入:str1 = “LEET”, str2 = “CODE”
2023-08-30 16:33:36 24
原创 基于go+vue-Element-template的后台网关管理系统
开发工具go1.8vue├─┬ @vue/[email protected]│ └─┬ @vue/[email protected]│ ├─┬ @vue/[email protected]│ │ └── [email protected] deduped│ └── [email protected] deduped├─┬ @vue/[email protected]│ └─┬ [email protected]│ └── [email protected] ded
2023-06-27 17:33:06 93
原创 C++动态工厂的应用
一般设计模式中,工厂模式都是静态创建,这种静态创建的方式解耦能力较差,不易于后续开发的扩展,因此动态工厂的创建方式尤为重要,下面是具体实现的方法
2023-06-27 14:54:19 54
原创 A40I构建编译应用程序的SDK环境
手动修改第三方软件包的配置文件,如下所示,哈希校验值的修改根据下载过程中哈希校验报错的信息,来调整哈希文件中的内容。cd进入buildroot生成文件系统目标文件目录。导出文件系统编译环境SDK。第三方库软件包版本更新。
2023-04-18 15:46:07 230
原创 git常用操作整理
一般在我们工程共同开发过程中,其余成员提交了最新的更新,我们本地工程同时也在修改开发的情况下, 先把本地修改的内容暂存, 拉取最新的提交,再把本地修改的内容导出,此时会与最新提交合并。查看本地某个 tag 的详细信息。查看本地所有 tag。查看远程所有 tag。本地 tag 的删除。
2023-04-17 16:07:19 62
原创 docker常用命令
手动修改/var/lib/docker/containers容器目录下的两个配置文件, config.v2.json。hostconfig.json,修改成功后,使用查看容器命令,可查看到以下信息。使用已有的镜像运行容器。
2023-04-17 15:05:28 16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人