自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 【cmake学习总结】

CMAKE_PREFIX_PATH 用于指示CMake在查找包和项目所需库文件时的路径。在构建项目时,它可以帮助CMake定位库文件,头文件和执行文件等。当项目的库文件或头文件不在CMake默认的查找路径中时,可以通过设置CMAKE_PREFIX_PATH变量来为CMake提供额外的查找路径,从而缩短构建时间并提高构建成功率。类似C语言的 include “file”${CMAKE_BINARY_DIR} 为 ./code/build。${CMAKE_SOURCE_DIR} 为 ./code。

2024-01-24 09:57:48 384

原创 鸿蒙 小型系统内核(LiteOS-A)qemu仿真

我一开始下载的3.0全量代码,但是3.0代码编译有bug(bug网上能搜到但是看不到解决方法…),不过好在手动解决了(一个是生成smallmmc.img的bug,还有hb启动的bug。这里建议下载最新的全量代码(但是有27G),PS:1 执行qemu_run时需要加上-f选项 2 我使用的3.1的脚本,由于docker没有安装qemu,所以qemu指令未在docker内执行。但是qemu_run.sh会用到docker中hb的命令,可以修改qemu_run.sh,将通过hb命令获得的结果写死在sh脚本。

2023-10-28 18:39:53 221

原创 鸿蒙 小型系统内核(LiteOS-A)shell代码流程

本文期望将shell代码从启动到运行的逻辑理清。背景知识:shell分为app和内核部分(\apps\shell 和 \shell\full)app部分作为shell的入口,接受客户端的命令-》陷入内核执行shell的底层处理shell模块初始化的顺序:内核shell初始化-》app shell初始化。

2023-09-28 14:53:35 330

原创 【代码技巧】【C语言】鸿蒙 openHarmony 代码中的“多态”

问题1:因为(*(SyscallFun1)handle)的强转将handle转化为了有一个入参的函数,所以就算handle对应SyscallFun0的类型,也不会编译报错。入参,因此,当handle是SyscallFun0的类型时,虽然regs->R0已经在栈中了,但是handle执行中并不会去使用它。那么问题又来了,顺着这种思路,case就不需要区分了, 统一按照最长入参个数的函数类型来调用即可。问题2:函数调用前,会将指定的入参入栈,在函数执行中,去栈中取。问题2:函数调用为何能正常工作?

2023-09-19 12:42:34 257

原创 设计模式之依赖倒置 C语言版本

通过C语言示例阐述依赖倒置原则的应用

2023-08-26 12:07:53 194

原创 Python使用方法记录

当传输文件很大,且正在传输时,os.walk()可以立即识别到文件,但此时还不能处理文件,需等待文件传输完成。config.read(currentPath+“/config.ini”) # 配置文件的路径。通过文件大小os.stat().st_size不能确认文件完成传输,需使用st_mtime才行。最近用Python写了个项目 记录一下用到的知识点。判断路径存在 以及是否有写、读、执行权限。格式化输出 百分比 左对齐 右对齐。config.ini文件读取解析。判断新拷贝文件是否已传输完毕。

2023-04-01 10:07:52 74

原创 c语言实现python tukey

Python scipy signal tukey hann win C语言 汉宁窗

2023-01-11 10:17:30 257

原创 【ESP32学习-4】外设

ESP32 驱动的逻辑分层 以及各种外设学习中的疑问 如PCNT等

2022-09-27 08:54:09 1256

原创 【FreeRTOS】栈生长方向 portSTACK_GROWTH

FreeRTOS新建任务 xTaskCreate portSTACK_GROWTH

2022-08-13 10:31:24 1615

原创 【ESP32学习-3】FreeRTOS

FreeRTOS

2022-08-09 16:08:11 1143

原创 【ESP32学习-2】esp32地址映射

本文始于esp32技术参考手册中的一段描述迷惑的是为什么inter SRAM 1 通过数据和指令总线访问不同地址,得到的是相同的内容?为什么这样设计?有什么好处?遍寻资料,终于找到了准确的解答:可以定制化调整IRAM和DRAM的大小。(同时也解答了,esp32内部ram是怎么划分使用的)ROM0为何需要Remap:网上没有找到解释,我的理解:rom0作为指令空间一共有384KB(已经非常大了),所分配的地址空间不会全部使用,可以通过remap的方式,将rom的地址映射为ram的地址。这样可以加快一级引导

2022-06-25 19:32:08 918

原创 【ESP32学习-1】Arduino ESP32开发环境搭建

Arduino ESP32开发环境方法3最简单,推荐使用方法1:官方安装方法方法2:手动安装方法这两种方法都是通过github下载,会失败方法3:这里提供另一种方法 该方法已经打包所有工具,直接安装即可(arduino_esp32版本是2.0.3)如果需要使用更新的版本需要采用以下方法:方法4:当前有两步需要用到github:arduino_esp32代码库 和 编译工具 (解决思路就是绕过github实现下载)代码库可以通过码云下载代码库编译工具是通过get.py去github下载,可以将js

2022-06-25 11:09:34 467

原创 ESP学习问题记录

ESP32 ESP-NOW 问题

2022-06-15 22:06:48 237

原创 【git学习总结】

参考资料git学习圣经 pro gitgit-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6GIF图解git 各种操作mp.weixin.qq.com/s?__biz=MzI0MDQ4MTM5NQ==&mid=2247492813&idx=1&sn=886c2e6a4773fcdcaadb3e6034c07a52&chksm

2022-05-24 11:38:37 293

原创 C语言 char指针和char数组 是不一样的

// a.cchar name[] = "tom";// b.cextern char *name;void main(){ printf("%s", name);}执行会失败,为什么?背景知识0可执行文件包含4类段内容:.text 存放代码段.data 存放数据段。已初始化的全局变量或静态变量.rodata 存放只读数据段。如字符串常量.bss 存放未初始化的全局或静态变量。背景知识1char a[] = “abc”;char *b = “def”;

2022-04-12 16:18:53 3165

原创 Linux 使用知识点记录

linux命令adduser 新增一个用户后 发现命令失效 ll ls tab 甚至BackSpace按键都不认识了因为添加用户时默认使用/bin/sh 需要切换为/bin/bash :切换为root 用户,vim /etc/passwd 编辑就OK了1.查看当前使用的是什么shell,linux命令:echo $SHELL2.查看当前可以使用的所有shell,linux命令:cat /etc/shellssudo : super user doapt(Advanced Packa

2022-03-29 10:25:29 733

原创 Kconfig Kbuild

代码工程中常常会见到一些名为Kconfig Kbuild的文件这种文件的作用是:面向编译脚本,屏蔽硬件的差异。Kconfig 并不是一种特殊的脚本,而是一种解决问题的方法,他可以用任何方法实现:python、shell+makfefile(linux kernal、Busybox)。引子对于嵌入式或者OS而言,面对的是成百上千的硬件类型,举个例子。假如有两个I2C硬件需要适配,常见的做法:方法1 (不建议滥用这种方法,1 新增单板时会修改同一文件,有误修改风险 2 不利于阅读)一个.

2022-03-22 16:29:18 2026

原创 嵌入式启动流程

名词解释ROM 集成在SOC内部的只读存储器BootROM 存储在Rom的第一段运行程序BL:BootLoader 为OS的运行进行硬件驱动(PC上称为BIOS)SPL:Second Program Loader 相较于BootRom的第二段运行程序DDR:常说的内存SRAM:集成在SOC内部的小内存U-Boot:开源BootLoader程序 GPL v2CPU的PC指向BootROMBootROM(BL0):1~16KB局部初始化Flash,Flash可能会工作在一个低速率状态校验

2022-03-18 15:58:57 462

转载 ARM PC=PC+8 最便于理解的阐述

——宋桓公2015-05-11

2022-03-17 09:45:37 597

原创 .elf .map .list .hex文件

编译链接之后生成.elf文件https://xinqiu.gitbooks.io/linux-inside-zh/content/Theory/linux-theory-2.html链接过程可以选择生成.map文件https://mbb.eet-china.com/blog/425232-416875.html.elf文件可以通过objdump生程.list文件.elf文件可以通过objcopy生程.hex文件...

2021-12-16 16:13:20 770

原创 map文件粗略分析

Map文件就是MCU程序的Map(地图)。我们编写好的代码,通过编译链接一系列动作后,会生成一个elf格式的文件,从这个elf文件可以生成一个hex或者bin文件,以供烧录到MCU里面去运行,同时(可配置地)生成一个叫Map的文件。这个elf文件实际上就包含了程序的各种信息,包括函数名、变量名,地址、大小等等非常丰富的信息。而这个map文件就是从elf提出取来的,非常直观地(以文本形式)展现程序中的各文件包含了哪些函数变量,而这些函数变量分配在哪些段,地址是什么,以及其占用的空间大小等。map文件包含

2021-12-16 16:04:04 6467

原创 gcc 编译选项

-fno-builtin 不使用内建函数-ffunction-sections-fdata-sections需求:有些函数或变量没有使用时不需要编入程序GCC链接操作是以section作为最小的处理单元,只要一个section中的某个符号被引用,该section就会被加入到可执行程序中去。因此,GCC在编译时可以使用 -ffunction-sections和 -fdata-sections 将每个函数或符号创建为一个sections,其中每个sections名与function或dat..

2021-12-15 11:16:20 709

原创 windows 搭建cmake和gcc编译环境 问题记录

增加cmake或者gcc的环境变量不能立即生效可以在命令行执行set PATH=C:\Software\cmake\bin;C:\MinGW\bin\;临时添加PATH 不必重启电脑在build目录下执行命令: cmake … 错:D:\test_argtable3\build>cmake ..-- Building for: NMake MakefilesCMake Error at CMakeLists.txt:5 (project): Running 'nmak..

2021-11-17 23:59:26 8147 3

原创 个人术语收集

AHB(Advanced High-performance Bus), 高速总线,用来接高速外设的。APB (Advanced Peripheral Bus) 低速总线,用来接低速外设的。https://zhuanlan.zhihu.com/p/157808097AMBA、AHB、APB、AXI总线介绍及对比https://zhuanlan.zhihu.com/p/161077476欢迎指正AMBA是总线体系:包括AHB、APB、AXIAHB比APB快速,AXI比AHB支持同时读写,功能更强大

2021-11-03 16:46:16 342

空空如也

空空如也

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

TA关注的人

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