- 博客(49)
- 资源 (12)
- 收藏
- 关注
原创 Arm Generic Interrupt Controller v3 and v4(GICv3v4)学习(二)
该博客主要为个人学习,通过阅读官网手册整理而来(个人觉得阅读官网的英文文档非常有助于理解各个IP特性)。若有不对之处请参考,以官网参考文档为准。Arm Generic Interrupt Controller v3 and v4学习一共分为三章,这是第二章。
2024-01-19 17:04:50
551
原创 Arm Generic Interrupt Controller v3 and v4(GICv3v4)学习(一)
该博客主要为个人学习,通过阅读官网手册整理而来(个人觉得阅读官网的英文文档非常有助于理解各个IP特性)。若有不对之处请参考,以官网参考文档为准。Arm Generic Interrupt Controller v3 and v4学习一共分为三章,这是第一章。
2024-01-14 17:28:30
1911
原创 Armv8-R AArch32 architecture概念学习
当一个虚拟中断被停用(deactive)时,可以对其进行配置,即当该虚拟中断被停用时,相应的物理停用消息也会发送给GIC分发器。系统寄存器使用一种标准的命名格式,.,来识别特定的寄存器以及寄存器内的控制位和状态位。例如,寄存器可能提供有关core已采取的abort exception的综合信息,或提供一个启用或禁用缓存的控制。程序状态寄存器包括当前程序状态寄存器(CPSR)、应用程序状态寄存器(APSR)和已保存的程序状态寄存器(SPSR)。
2024-01-09 20:57:56
1686
原创 AArch64 Exception Model学习
一节中提到的,异常到达的向量已经提供了关于异常时处理器状态的信息。例如,由于异常在异常输入和退出期间应该被屏蔽,因此向量表“使用SP_ELx时来自当前EL的异常(Exception from the current EL while using SP_ELx)”区域中的代码只会在异常情况下被触发。例如,如果中断在EL1中被屏蔽,并且一个中断被路由到EL2,那么EL1掩码将不会影响EL2的操作。在几乎所有的情况下,中断控制器都与系统中的AArch64处理器配对,用于整理、优先级排序和处理所有的中断。
2024-01-09 18:59:36
1268
原创 AArch64 memory management学习(二)
注意:这两章只是介绍AArch64 memory management,还有AArch64 memory management examples,AArch64 memory attributes and properties等没介绍。
2024-01-08 20:40:30
1107
原创 Security介绍
当我们谈到Security(安全,下文不再翻译)时,通常用“asset(资产)”一词来指代我们想要保护的东西。例如,一个加密密钥通常被归类为一个asset。让我们考虑一下我们可能想要保护的asset的属性。我想保护什么东西?我想保护的那个东西是什么?我保护的是谁或什么东西?被保护的东西的价值怎样?
2024-01-08 11:01:22
857
原创 AArch64 memory management学习(一)
内存管理描述了如何控制对系统中内存的访问。每次OS(操作系统)或应用程序访问内存时,硬件都会执行内存管理。内存管理是一种为应用程序动态分配内存区域的方法。
2024-01-07 17:55:54
1282
原创 Cortex-M3如何跳出BusFault,跳过出错代码,程序往下执行
如上图所示,可以看到触发BusFault前BFSR寄存器第7为高,表示BFAR寄存器有效,且BFAR与MMAR寄存器一致,都为0xE000EDF8。此时,需要注意SP指针为0x2000A208,并且存储内容为0x2000A20C,这有助于找到触发BusFault,压栈前的SP指针。故在采用SP指针修改PC指针的时候,一定要注意压栈的次数,SP改变次数,反推进入Handler时候的SP指针。因此,只需要在该地址上,给0x77B4+4,这样清除中断标记位后,就能使程序不再进入BusFault。
2023-09-07 17:19:05
1195
原创 Unable to checkout a viewer license necessary for use of the ModelSim graphical user interface.Vsim
【代码】Unable to checkout a viewer license necessary for use of the ModelSim graphical user interface.Vsim。
2023-06-24 15:34:28
1687
3
原创 linux驱动中cdev,class及device区别
cdev、class和device都是Linux驱动程序中重要的结构体类型,分别代表了字符设备、设备类和具体设备实例,它们各自有不同的职责,但又相互关联,共同协作完成设备驱动程序的实现。因此,对于字符型设备,驱动程序结构通常如下/* dtsxxx 设备结构体 */ struct dtsxxx_dev {/* 设备号 */ struct cdev cdev;/* 类 */ struct device * device;/* 设备 */ int major;/* 主设备号 */ int minor。
2023-04-21 18:35:22
2474
原创 浅析linux驱动中uImage,zImage,bootz,bootm
uImage和zImage都是Linux内核启动时可能使用到的镜像格式。
2023-04-21 17:22:39
2018
原创 U-Boot移植
作为初学者,有必要了解U-Boot是如何添加一块新的开发板。通常需要做什么配置?本文梳理一下U-Boot一般需要添加修改的文件,帮助理解U-Boot移植过程IMX6U嵌入式Linux驱动开发指南V1.8NXPimx6ull−−−正点原子imx6ullalientekimx6ull。
2023-03-28 17:29:41
584
原创 U-Boot Makefile编译常用命令
对于U-Boot常常需要用Makefile编译,而这又需要对U-Boot顶层Makefile进行分析,虽然能深度了解常用命令的意义。但对于使用而言,意义不大。因此,本文章整理了一些常用的命令,并给出简单解释,使其快速记住上手。用于编译 uboot,该命令用于生成 u-boot.bin 文件和其他的一些与 uboot 有关的文件,如 u-boot.imx 等。
2023-03-25 15:25:16
513
原创 解决disagrees about version of symbol device_create
学习正点原子led驱动移植,出现下面错误:modprobe newchrled.ko newchrled: disagrees about version of symbol device_createnewchrled: Unknown symbol device_create (err -22参考手册给的办法比较概括,如下图所示,现在给出具体的步骤解决核心思想:内核版本与模块版本不一致造成,更改版本一致即可解决。1 查看网络挂载的uboot环境,确保编译的zImage和设备树能正常下载
2022-04-22 15:32:34
5871
3
原创 解决I.MX6U驱动移植LED闪烁
最近学习正点原子的驱动移植,当下载程序到开发板的时候,LED一直闪烁,检查程序也没发现问题。解决办法:进入开发板系统,在串口终端执行指令控制对应的 IO 来控制对应的器件在串口终端输入命令:echo none > /sys/class/leds/red/trigger注意:要学会自己查看是在哪个目录下,有的可能是下面的目录echo none > /sys/class/leds/sys-led/trigger最后附上驱动加载常用命令,方便记忆驱动加载: 1、跳转到指定目录 c
2022-04-21 10:26:20
498
原创 嵌入式驱动模块的加载与卸载
最近学习正点原子嵌入式驱动模块加载与卸载的时候,使用命令:modprobe chrdevbase.ko 出现hrdevbase: version magic '4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ’ should be '4.1.15 SMP preempt mod_unload modversions ARMv7 p2v8 ’问题原因:这种报错是内核版本和模块版本不一致,所以导致加载不成功温馨提示:这里的内核版本不是ubun
2022-04-19 11:38:11
3672
5
原创 Swin Transformer理解
最近在阅读transformer,也作个笔记,供学习使用。希望阅读者有CNN的基础,如YOLO,MobileNets,ResNet等,并且一定要先阅读ViT。不然读起来可能比较吃力。当然笔记也尽可能解释清楚1 核心参考① B站跟李沐学AI② Swin Transformer论文精读【论文精读】友情提示:看完笔记,还需要阅读原文,去看代码,才会有大的收获。2 研究背景:ViT的缺点1、显存占用–Token数量。Token是指模型运行中的最小处理单元。ViT中的Token指的是一个Patch,T
2022-04-13 14:25:48
6843
5
原创 python查看神经网络参数大小
最近在写论文需要对比网络大小,平时可能用不到,做个笔记。1、利用工具,torchsummary输入安装命令:pip install torchsummary -i https://pypi.tuna.tsinghua.edu.cn/simple加入清华镜像源快一点import torchfrom torchsummary import summaryfrom nets.yolo import YoloBodyif __name__ == "__main__": # 需要使用devic
2022-04-11 10:22:58
2887
原创 ViT理解
最近在阅读transformer的第一篇文章ViT,也作个笔记,供学习使用。希望阅读者有CNN的基础,如YOLO,MobileNets,ResNet等,不然读起来可能比较吃力。当然笔记也尽可能解释清楚。参考资料① B站深度之眼:CV transformer② 代码网址:https://github.com/lucidrains/vit-pytorch③ 原文:AN IMAGE IS WORTH 16X16 WORDS:TRANSFORMERS FOR IMAGE RECOGNITION AT S
2022-03-30 18:54:07
5895
3
原创 解决annaconda下的python环境和华为海思下的python环境冲突
最近学习vit,使用命令 pip install vit-pytorch安装vit-pytorch但是安装的时候出现安装不成功,理由是pip的版本过低,让你升级pip安装包,然后升级了继续安装,又出现下面的情况:To fix this you could try to: 1. loosen the range of package versions you've specified 2. remove package versions to allow pip attempt to solve th
2022-03-29 11:37:58
4852
原创 解决改造mfgtools工具烧写程序一直处于No Device Connected状态
在学习正点原子改造mfgtool烧写程序时,如下所示,软件一直处于No Device Connected状态解决办法:将自己编译的zImage改为imx_v7_mfg_deconfig配置编译生成的zImage即可具体:1、打开自己写的脚本im6ull_alientek_emmc.sh将第三行代码改为make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_mfg_defconfig2、运行脚本 ./imx6ull_alientek_em
2022-03-25 17:18:54
4675
1
原创 bootz启动linux内核
分析完uboot启动流程,该篇分析bootz启动linux内核。如下图所示,bootz 命令的执行函数为 do_bootz,主要分为三个阶段:①bootz_start;②bootm_disable_interruptes;③do_bootm_states。1、bootz_start函数bootz_start()主要分为四个阶段:① do_bootm_states();② images->ep;③ bootz_setup();④ bootm_find_images()(1) do_bootm_
2022-03-15 16:37:22
2004
原创 uboot启动流程详解
要分析boot启动流程,首先要找到程序入口地址,可以通过编译uboot生成u-boot.lds,通过查看链接脚本u-boot.lds知道入口点是 arch/arm/lib/vectors.S 文件中的_start。OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")OUTPUT_ARCH(arm)ENTRY(_start)//代码当前入口点: _start, _start 在文件arch/arm/lib/vecto
2022-03-14 18:41:07
13613
7
原创 STM32F4驱动GPS(寄存器版)
本次使用STM32F4的USART1对GPS模块进行驱动,并且将GPS的时间、经纬度通过串口打印出来。gps模块与接线图注意:GPS 模块需放到窗户边/阳台,否则可能收不到 GPS 信号。1、GPS驱动配置(gps.c)#include "includes.h"//定义接收信息结构体变量struct GPS_Data Save_Data;/*****************************函数名:clrStruct函数参数:无函数返回值:无函数功能:清除接收结构体信息
2022-03-10 15:28:13
2166
2
转载 解决uboot用NFS下载程序出现:Loading: *** ERROR: File lookup fail
解决uboot用NFS下载程序出现:Loading: *** ERROR: File lookup fail原因:ubuntu中的NFS版本高于uboot中的版本,需将ubuntu中的版本改为兼容与uboot中的版本(V2)解决办法:0、确保虚拟机ip与主机ip地址不一致,否则会出现下面情况可设置手动ip,且自定义特定虚拟网络1、重启虚拟机ip,然后ifconfig查看配置的ip是否为自己设置的sudo ifconfig ens33 downsudo ifconfig ens33 up
2022-03-09 14:45:24
1331
4
原创 uboot网络操作解决:ARPRetry count exceeded; starting again ping failed; host 192.168.86.128 is not alive
uboot网络操作解决:ARPRetry count exceeded; starting again ping failed; host 192.168.86.128 is not alive最近在uboot网络操作的时候,如下图所示:uboot去ping虚拟机里的ubuntu发现怎么都ping不了,下面给出解决办法0、将开发板与电脑处于同一网段内,最简单的办法就是将网线插在同一个路由器下。1、将虚拟机网络连接设置为桥接模式(B)2、ifconfig查看ip;然后sudo ifconfig e
2022-03-08 19:14:15
8939
3
原创 STM32F4xx驱动WIFI串口收发(寄存器版)
STM32F4xx驱动WIFI串口收发(寄存器版)1、接线方式 wifi MCU(USART2) VCC VCC(3.3)注意 GND GND RX PA2(USART2_TX) TX PA3(USART2_RX)2、配置wifi.c#include "stm32f4xx.h"#include "string.h"#include "usart1.h"#include "usart2.h"#include "delay.h"#inc
2022-03-08 15:09:31
853
原创 STM32F4驱动MPU6050
STM32F4xx驱动MPU6050MPU6050.c文件1、初始化MPU6050/*返回值:0,成功 *其他,错误代码 */u8 MPU_Init(void){ u8 res; //IIC_init();//初始化IIC总线 MPU_Write_Byte(MPU_PWR_MGMT1_REG,0X80); //复位MPU6050 delay_ms(100); //Jahol Fan :奇怪的问题,延时改长了,就不能兼容HP-6 MPU_Write_Byte(MPU_PWR_M
2022-03-07 19:42:43
6530
原创 ubuntu无法安装libncurses5-dev解决办法
学习嵌入式uboot移植,需要安装libncurses5-dev,执行命令如下:sudo apt-get install libncurses5-dev但是出现下面问题:E: 无法下载 http://cn.archive.ubuntu.com/ubuntu/pool/main/n/ncurses/libncurses5-dev_6.2-0ubuntu2_amd64.deb 暂时不能解析域名“cn.archive.ubuntu.com”E: 有几个软件包无法下载,要不运行 apt-get upda
2022-03-07 17:25:54
5992
2
原创 win10下安装pycocotools
最近在训练网络的时候发现需要安装pycocotools。但是在安装的过程中发现pycocotools是在linux环境下运行才不爆粗。于是在网上下载了pycocotools-windows。发现还是不行,搜索了许多教程仍然不能解决。于是自己发现了一个简单暴力的方法。1、首先在网上下载pycocotools-windows。pip install pycocotools-windows2、找到下载所在在目录。我自己的放在了自己创建创建环境yolo5下的Lib/site-packages。然后直接暴力将
2022-03-04 15:01:02
1106
6
原创 基于CNN目标检测有代表意义的几篇论文
近几年目标检测的论文。相关论文可到arxiv上搜索。目前主流的目标检测依旧为YOLO及各个变体,包括基于Transformer的YOLOS。
2022-02-28 10:59:57
2618
原创 浅析嵌入式开发中的RAM和ROM
在嵌入式开发中常常会遇到RAM,ROM,flash,内存等等一些问题,先梳理一下备用。1、ROM:只读存储器。优点:容量大,掉电不丢失;缺点:读取速度慢。事实上,“只读”定义不准确,如手机的8+128G。这里8指的是RAM;128指的是ROM。而这里的ROM是flash,如EMMC、UFS、NAND flash都可以进行写操作(擦除–>发送要写地址或扇区–>写数据)。由于历史原因,flash仍被称为ROM。2、RAM:随机存储器。优点:速度快,直接与CPU通信;缺点:掉电丢失,容量小。3
2022-02-25 09:38:01
1534
原创 i.mx6ull裸机烧写设备异常
i.mx6ull裸机串口实验,发现串口一直无响应,检查很多代码配置发现都没问题。于是无奈将例程烧写进去,发现串口还是没连接。检查半天,发现烧写的速度居然高达3.7MB/s。这显然有问题,正常烧写速度也就300~400k。下面记录修改过程:1、 ls /dev/sd* 发现设备异常2、拔出SD卡,然后执行 sudo rm /dev/sdb/ ; ls /dev/sd* 查看是否删除设备3、插上SD卡,注意要连接在ubuntu下,然后输入 ls /dev/sd*,查看设备是否正常4、输入下载命
2022-02-24 16:58:50
5108
原创 imx6ull配置ARM PLL倍频先使能再倍频系统不运行
imx6ull配置ARM PLL倍频先使能再倍频系统不运行按照传统配置方法,一般先使能然后配置各种寄存器,但在imx6ull中ARM PLL倍频需要在使能寄存器为0的时候才能配置,修改方法如下:将使能调于倍频语句后即可。...
2022-02-21 14:40:51
217
原创 imx6ull编译出现no such instruction: `mrs r0,cpsr‘错误提示
no such instruction: `mrs r0,cpsr’imx6ull编译出现no such instruction: `mrs r0,cpsr’,如图所示1、注意.s后缀大小写要保持一致2、注意工具链
2022-02-17 17:34:44
1924
1
原创 vscode安装ARM插件搜不到
正点原子教程里需要安装ARM插件,如图所示,教程里能搜到,可实际自己安装的时候却搜不到点击安装Arm Assembly即可,功能完全一样。
2022-02-10 12:18:24
5666
9
原创 ubuntu下安装gcc出现 W: 无法下载
ubuntu下安装gcc出现 W: 无法下载 http://cn.archive.ubuntu.com/ubuntu/dists/focal/InRelease 暂时不能解析域名“cn.archive.ubuntu.com”ubuntu下安装gcc出现W: 无法下载 http://cn.archive.ubuntu.com/ubuntu/dists/focal/InRelease 暂时不能解析域名“cn.archive.ubuntu.com”1、首先检查网络是否连接成功,如图所示出现连接成功标志
2022-02-08 12:53:58
3228
原创 YOLOv4损失函数
YOLOv4损失函数第一行:正样本坐标损失第二行:正样本置信度损失(采样交叉熵计算损失)第三行:负样本置信度损失(采样交叉熵计算损失)第四行:正样本分类损失(采样交叉熵计算损失)LOSS=L(正样本坐标损失)+L(正样本置信度损失)+L(负样本置信度损失)+L(正样本分类损失)附:YOLOv1损失函数;YOLOv2损失函数;YOLOv3损失函数...
2022-01-12 10:41:08
6136
13
原创 YOLOv3损失函数
YOLOV3损失函数第一行与第二行:正样本坐标损失第三行:正样本置信度损失(采样交叉熵计算损失)第四行:负样本置信度损失(采样交叉熵计算损失)第五行:正样本分类损失(采样交叉熵计算损失)LOSS=L(正样本坐标损失)+L(正样本置信度损失)+L(负样本置信度损失)+L(正样本分类损失)附:YOLOv1损失函数;YOLOv2损失函数...
2022-01-10 16:16:28
2812
STM32F4驱动GPS(寄存器版)
2022-03-10
STM32F4驱动MPU6050
2022-03-07
嵌入式开发常用的一些软件
2022-03-07
电子科技大学多源信息融合(平时作业+综合设计)
2021-12-14
电子科技大学现代数字信号处理课后习题(仿真代码+整理word)
2021-12-14
应用随机过程期末试题(适合电子科技大学信通学院)
2020-12-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人