- 博客(30)
- 资源 (24)
- 收藏
- 关注
原创 【SOC】Fastboot /DFU 烧录镜像
摘要:该流程描述了通过fastboot协议在主机与开发板之间进行镜像烧录的步骤。首先开发板进入uboot并初始化UFS设备,主机安装fastboot客户端并通过USB连接。在uboot进入fastboot模式后,主机发送镜像文件和信息至开发板,uboot接收数据并根据信息将镜像写入UFS设备。整个过程实现了高效可靠的镜像传输与烧录。
2025-12-19 18:15:00
123
原创 【SOC】 链接文件(.lds)—拷贝表
.lds 文件是 链接器脚本(Linker Script)文件,主要用于指导链接器(如 ld)如何组织可执行文件或库的内存布局
2025-12-12 17:28:47
467
原创 ARM V8 Cortex R52 上电运行在什么状态?— Deepseek 解答
如果 R52 被配置为没有 EL3,那么复位后 CPU 就进入 EL2,并且系统处于安全状态(或者单一状态,没有 TrustZone 概念,取决于具体实现)。不支持 EL3:那么复位后,CPU 会从 EL2(即 Hyp mode,在 ARMv8-R 里叫 EL2)开始执行,并且此时系统没有安全非安全状态切换能力,默认处于安全状态(或者由硬件固定为安全)。在 ARMv8-R 里,EL2 是必须实现的(因为 R52 强调实时与虚拟化,EL2 用来做空间隔离,两个虚拟机)。芯片设计时选择不实现 EL3。
2025-11-10 14:49:11
508
原创 【RISC-V 】E906 移植FreeRTOS
程序在编译完成时text、rdata、data和bss的大小已经确定,因此上述所有配置都是根据编译完成时各程序结构的大小进行配置的,44K的heap是目前场景下最小的配置。避免了,硬件矢量中断的问题(采用非硬件矢量中断的方式),根本原因是没有搞明白硬件矢量中断(异常+中断)的机制,实操过程中体现在 没有维护好中断的栈(保存现场和恢复现场),依然采用原有非硬件矢量中断的做法,对异常进行了保存现场和恢复现场,实际可以对异常不做恢复现场的操作(异常时PC指针会一直停留在异常地址处—由硬件决定)前期调试;
2025-08-07 18:14:30
897
原创 【安全启动——验签】
SHA : 不能用于解密, 只用于数据处理, 得到一组数据, eg: 网上在线使用SHA 处理一个文件,得到一组哈希值A, 保存哈希值到嵌入式系统中;然后嵌入式系统中, 硬件模块使用SHA 再次对以上文件进行处理,得到一组哈希值。先从flash 读取 manifest , 校验 公钥 和 数字签名, 最后,在 从flash 中加载 img, 并校验img。
2025-08-07 18:03:26
234
原创 解决 repo 拉取代码报错 repo: reusing existing repo client checkout in /xxx
以上问题的原因是,.repo 已经存在了,需要先删除原来的 .repo , 如上述原来的.repo 路径在’/home/xxx/.repo/,最后,重新使用 repo 拉取代码即可。
2025-05-20 11:15:23
616
原创 【SPI】之调试笔记
上图是eeprom 下的 WRITE 操作, 可以看出,主机在连续写数据, miso对其 不会产生影响, 在主机发数据的同时,miso 信号线上的数据全为 0xff, 这一点应该可以说明 全双工模式下,RX 和 TX 的状态了, 加深理解 “上图是eeprom 下的 READ 操作,主机发送完读取的page 地址 0x0B , 0x00, 0x00 ,0x00后, 信号线 mosi 上的值全为0x00, 从设备立马就回数据到rx_fifo中了(1.某xx的 ip, 传输模式有 4 种, 分别为,
2024-03-14 16:16:32
993
原创 【soc】— spl&&uboot校验方法
本文主要对 spl&&uboot校验方法进行了描述,分为:外部有存储介质的如(nandFlash,norFlash,emmc,Sd等)且不要求从镜像文件的首地址执行的场景;和外部无存储介质的有校验的,且要求从镜像文件首地址运行的场景,进行了方法简介和结构说明。
2022-11-27 16:31:22
896
原创 解决 “error while loading shared libraries: libpng12.so.0/libmpfr.so.4: cannot open shared object file
解决 "error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory"问题
2022-08-05 15:08:58
5792
1
原创 IMX6ULL_PRO配置交叉编译工具链出现arm-buildroot-linux-gnueabihf-gcc command not find
IMX6ULL_PRO配置交叉编译工具链出现:arm-buildroot-linux-gnueabihf-gcc :command not find
2022-04-16 18:20:33
4210
2
原创 【Linux】makefile
【Linux】makefileVERSION1目标 :依赖规则 命令 1 # VERSION1 2 #---------------------------------------------------------- 3 #app: main.c add.c sub.c div.c mul.c 4 # gcc -o app
2022-02-12 15:30:02
602
原创 【STM32】使用TIM内部计数器(CNT)实现按键长、短按
STM32使用TIM内部计数器(CNT)实现按键长、短按1.工具STM32CUBE、IARSTM32F411VET62.实现2.1案例说明按键:本案例使用PA0,高电平有效(按下引脚电平为1,未按下为0)长按: 按键从按下到释放时间 > 2s短按: 按键从按下到释放时间 < 1s长按功能:LED15翻转1次,调用HAL_GPIO_TogglePin( GPIOD, GPIO_PIN_15);短按功能:LED12翻转1次,调用HAL_GPIO_TogglePin( GP
2021-10-24 15:18:43
8023
原创 【STM32CUBE+IAR+IAP升级】
STM32CUBE+IAR+IAP升级案例应用:利用IAR+串口调试助手对STM32F411VET6进行简单的IAP实现,(代码分为两部分:BootLoader+APP翻转LED)1.工具:IARSTM32CUBEMX串口调试助手IAP预备知识参考:STM32CubeIDE IAP原理讲解,及UART双APP迭代升级IAP实现声明下:本文章参考[sudaroot]的文章STM32CubeIDE IAP原理讲解,及UART双APP迭代升级IAP实现2.工程配置2.1.1简要说下,本案例I
2021-09-19 18:52:19
4038
原创 【STM32CUBEMX + IIC + 光照传感器JSA1130】
STM32CUBEMX + IIC + 光照传感器(JSA1130)案例应用:使用IIC读取光照传感器(JSA1130)的数值,并利用UART打印显示1. 工具IARSTM32CUBEMX开发板STM32F411VET6IIC预备知识见:AT24C02 E2PROM芯片详解2. JSA1130光照传感器2.1.1 JSA1130 器件地址,根据手册ADDR引脚接地, 因此JSA1130器件地址为 0x442.1.2 JSA1130 寄存器;共有7个寄存器 CONFIGURE、 IN
2021-09-11 16:32:06
2085
原创 【STM32】STM32CUBEMX + ADC(单通道,双通道DMA)
STM32CUBEMX + ADC(单通道,双通道DMA)案例应用 :使用ADC采集电压(单通道、单通道+DMA、双通道+DMA),并利用串口打印采集转换后的电压值1.工具IARSTM32CUBEMX开发板STM32F411VET6预备知识参见:STM32】HAL库 STM32CubeMX教程九—ADC2.工程配置2.1 单通道2.1.1系统时钟RCC、SYS配置2.1.2 ADC配置,这里强调2点,使用ADC1——>IN4(通道4),本案例使用F4开发版,在12bit
2021-09-11 11:58:16
21341
13
原创 【STM32CUBEMX+PWM+UART】
【STM32CUBEMX+PWM+UART】1.案例应用 本案例为使用STM32CUBEMX配置TIM2生成PWM捕获信号,并对TIM3,TIM4(也可捕获其它设备输出)输出的PWM波进行捕获(本例捕获上升沿,极性可以自己设置),最后求取并串口打印TIM3,TIM4输出PWM的周期、占空比以及1个周期内高电平的持续时间。2.工具STM32CUBEMXIARSTM32F411VET63.PWM实验3.1.1 STM32CUBEMX 工程配置打开 STM32C
2021-09-04 15:37:50
1112
原创 【整型提升】
【整形提升——浅析】1.预备知识1.1 —整形在计算机中的存储对于整形来说,数据在内存中是以补码的形式存储的,Why? 在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值 域统一处理;同时和减法一样也可以统一处理(CPU只有加法器),此外,补码与源码相互转换,其运算过程是相同的,不需要额外的硬件电路。1.2.原码、反码、补码 计算机中的符号数有三种表示方法,即源码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用 0
2021-09-02 20:56:23
261
原创 【STM32】STM32CUBEMX+UART串口调试,循环接受发送数据
STM32CUBEMX+UART串口调试,循环接受发送数据芯片型号:STM32F411VET6工具:开发环境IAR,STM32CUBEMX, 串口调试助手1.引语 ST官方将原来许多的库函数,封装成以HAL(Hardware Abstraction Layer,硬件抽象层)或者LL(Low Layer)起始的库函数,底层驱动实现全部封装起来,只要明白、看懂库函数的实现功能以及API的参数就可以使用,非常方便、效率高。对于之前学习野火或者正点原子的开发人员来说可能有点不适应,在HAL
2021-08-28 22:32:53
3542
原创 【linux】—vimplus,SecureCRT安装
【linux 】—vimplus,SecureCRT安装vimluse:一:所需环境 1.ubuntu (我的是安装了一个VMware Workstation ,linux系统:Ubuntu 18.04.1),可在软件安装管家获取: 2.连网 3.git 环境(如果没装,打开终端输入: sudo apt install git +回车...
2020-03-22 14:00:10
433
1
原创 【C++】pk游戏—(玩转多态)
pk游戏—(玩转多态)本案例为多态应用;武器类属性:基础伤害、特效(吸血、定身、暴击);屠龙刀拥有:吸血、定身、暴击的几率小刀:无任何能力英雄:攻击力、防御、血量、武器、装备武器、攻击怪物怪物:攻击力、防御、血量、攻击英雄核心算法:通过isTrigger判断是否触发特效//系统随机产生 1~100的数字//(例如传进来一个30,然后产生一个随机数,如果这个随机数在1-30之间,则...
2019-11-24 19:46:58
3247
2
原创 【C++】浅谈虚继承
C++——浅谈虚继承问题1:什么是虚继承?为什么要虚继承?虚继承 :是面向对象编程中的一种技术,是指一个指定的基类,在继承体系结构中,将其成员数据实例共享给从这个基类型直接或间接派生的其它类。虚拟继承是多重继承中特有的概念。虚拟基类是为解决多重继承而出现的。概念可能不是那么好理解 ,那么我们看如下案例:上述案例中,羊与骆驼是分别是动物的2个派生类,2者之间都继承了动物的数据和函数,而羊驼...
2019-10-16 15:22:25
1000
2
原创 【C】将字符串 student a am i或 ( I Am Prammer) 翻转为 i am a student或(Prammer Am I)
1.某公司2019秋招在线笔试题 ;联合体union#include<stdio.h>#include<stdlib.h>#include<string.h>union var{ int a ; char m[5]; int *p;};void test(){ printf("%d\n ",sizeof( union var));}...
2019-09-19 09:10:42
311
1
原创 #if、#ifdef、#ifndef的用法
#if、#ifdef、#ifndef的用法#if 的用法#if 用法的一般格式为:#if 整型常量表达式1 程序段1#elif 整型常量表达式2 程序段2#elif 整型常量表达式3 程序段3#else 程序段4#endif它的意思是:如常“表达式1”的值为真(...
2019-09-12 08:37:12
3017
原创 简单计算器实现
简单计算器实现编译环境vs17,实现功能(+ - * /) int Myadd(int x, int y){ return x + y;}int Mysub(int x, int y){ return x - y;}int Mymul(int x, int y){ return x * y;}int Mydiv(int x, int y){ if ...
2019-08-14 09:09:41
373
1
原创 机器大小端
# 机器大小端1.为什么会有大小端? 这是因为在计算机系统中我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但在c语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于8位的处理器,例如16位或者32位处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。因...
2019-08-08 11:51:22
693
4
原创 C陷阱与缺陷
C陷阱与缺陷1.如下代码:(编译环境vs08版)# include<stdio.h># include<string.h># include<windows.h>int main(){ int i = 0; int arr[10] ={1,2,3,4,5,6,7,8,9,10} ; // printf("%p\n",&am...
2019-03-17 15:23:59
2898
3
原创 如何在一个仓库下创建多条分支,并在每一天上传代码后,都显示绿色方格
在一个仓库下创建多条分支,并在每一天上传代码后,都显示绿色方格1.上一篇已经讲了如何建立仓库并上传代码(如果没有看的建议看下哈)。现在我们在bird这个仓库下操作,图1 可见 只有 1个 branch(分支)。-----分支 ;图2所示,我们点中2_20右键选择 Creat Branch…,然后输入自己要创建的新的分支的 名字(建议不要用中文)。这里我命为one 然后直接ok,图3 ,4所...
2019-03-13 19:58:43
852
2
原创 如何将自己的代码上传到github
如何将自己的代码上传到github### 我自己用的工具是git及小乌龟(下附链接):下面的工具请按顺序安装(注:选择32/64bit安装,第3个为MARKDOWN编辑器下载)1—&amp;amp;amp;amp;amp;amp;amp;amp;gt;:https://git-scm.com/downloads2—&amp;amp;amp;amp;amp;amp;amp;amp;gt;:https://tortoisegit.org/download/
2019-03-05 20:50:42
1095
3
arm generic interrupt controller Architecture version 2.0
2024-09-30
STM32CUBEMX+IAR+IAP应用程序升级(STM32F411VET6)
2021-09-15
串口打印 温湿度 STM32
2019-03-28
STM32F103 DHT11
2019-03-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅