R0
  • 2024-06-24A15 汇编启动阶段-BSP
    MSRCPSR_c,#Mode_SVC|I_Bit|F_Bit //SVCmode //setupvectormode /*BIT[13]: 0:选择低端异常中断向量0x0~0x1c 1:选择高端异常中断向量0xffff0000~0xffff001c*/ MRC p15,0,r0,c1,c0,0 //ReadControlRegister BIC r0,r0,#(1<<13) //u
  • 2024-06-19鸿蒙内核源码分析(汇编传参篇) | 如何传递复杂的参数
    汇编如何传复杂的参数?汇编基础篇中很详细的介绍了一段具有代表性很经典的汇编代码,有循环,有判断,有运算,有多级函数调用。但有一个问题没有涉及,就是很复杂的参数如何处理?在实际开发过程中函数参数往往是很复杂的参数,(比如结构体)汇编怎么传递呢?先看一段C语言及汇编代码,
  • 2024-06-15FreeRTOS简单内核实现3 任务管理
    0、思考与回答0.1、思考一对于Cotex-M4内核的MCU在发生异常/中断时,哪些寄存器会自动入栈,哪些需要手动入栈?会自动入栈的寄存器如下R0-R3:通用寄存器R12:通用寄存器LR(LinkRegister):链接寄存器,保存返回地址PC(ProgramCounter):程序计数器,保存当前执行指令的地址xPSR(Pro
  • 2024-06-15QT210开发板学习(2): 通过DNW点亮LED灯
    查找开发板原理图,可知可用的LED有4个,引脚为EINT0/1/2/3,对应的IO口则是GPH0_0/1/2/3,寄存器有GPH0CON,GPH0DAT,GPH0PUD,GPH0DRVGPH0CON用来设置IO模式(地址为0xE0200C00),GPH0DAT是电平状态(地址为0xE0200C04)我们需要设置为Output模式,并且将状态设置为高电平新
  • 2024-05-27FreeRtos进阶——栈保存现场的几种场景
    MCU架构在认识栈的结构前,我们先来认识以下单片机的简单架构。在我们的CPU中有着很重要的一个模块——寄存器(R0-R15),其中R13,R14,R15的别称分别为SP栈顶指针、LR返回地址、PC当前指令地址。外部RAM是单片机的内存(当我们在使用栈时就会在内存中划分一块空间作为栈空间)。Code是
  • 2024-05-27u-boot启动流程(好难理解啊!!!)
    链接脚本u-boot.lds详解要分析uboot的启动流程,首先要找到“入口”,找到第一行程序在哪里。程序的链接是由链接脚本来决定的,所以通过链接脚本可以找到程序的入口。如果没有编译过uboot的话链接脚本为arch/arm/cpu/u-boot.lds。打开u-boot.lds可以看到下图所示的内容。OU
  • 2024-05-10linuxC语言点灯
    大部分情况下都是使用C语言去编写的。只是在开始部分用汇编来初始化一下C语言环境,比如初始化DDR、设置堆栈指针SP等等,当这些工作都做完以后就可以进入C语言环境,也就是运行C语言代码,一般都是进入main函数。所以我们有两部分文件要做:①、汇编文件汇编文件只是用来完
  • 2024-05-07linux学习第三天
    嵌入式linux学习第三天汇编语言点灯今天学习如何在linux板子上点灯。I.MX6UGPIO详解我们发现I.MX6UGPIO是分为两类的,:SNVS域的和通用的。在讨论i.MX6U或类似的复杂微处理器时,了解其GPIO(通用输入输出)引脚的不同分类是很重要的。i.MX6U的GPIO引脚被分为两大类:SNVS(SecureNon-V
  • 2024-05-03多任务调度器
    任务的状态运行态:正在占用CPU,对于单核cpu,任何时候只有一个正在运行的任务就绪态:被登记到就绪表的任务,等待占有CPU的任务释放CPU后,可能获得调度挂起态/等待态:不在上述状态的任务抢占式调度一旦就绪态中出现优先级更高的任务,会立即剥夺当前运行的任务,把CPU分配给这个优
  • 2024-04-20某游戏忍者全局过异常分析
    虽然这篇文章可能会涉及到某些人的利益,但我还是写了首先,我们先将手机与ce进行桥接(具体的教程b站有)然后我们先找到a内存的过异常(原理就是将当前怪物包改0,当前市面上广为流传的过异常都是这个原理)我们在ce中添加他的地址查看访问他的操作码(触发他)然后我们看到访问了他的
  • 2024-04-10计算机网络实验九:静态路由与默认路由配置
    目录实验目的实验环境配置实验原理实验步骤及结果实验分析结论实验目的理解静态路由的含义。掌握路由器静态路由的配置方法。理解默认路由的含义。掌握默认路由的配置方法。实验环境配置装有CiscoPacketTracer的Windows计算机。三个路由器(路由器R0、路由器R1、
  • 2024-04-05单片机数据传递类指令
    单片机数据传递类指令(3)以直接地址为目的操作数的指令MOVdirect,A 例: MOV20H,AMOVdirect,RnMOV20H,R1MOVdirect1,direct2MOV20H,30HMOVdirect,@RiMOV20H,@R1MOVdirect,#dataMOV20H,#34H(4)以间接地址为目的操作数的指令MOV@Ri,A 例:MOV@R0,AMOV
  • 2024-04-05单片机寻址方式与指令系统
    通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习8051单片机的指令部份。一、概述1、指令的格式  我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机
  • 2024-03-29FreeRTOS从代码层面进行原理分析(3 任务的切换)
    FreeRTOS分析三—任务的切换我们带着三个问题开始了对FreeRTOS代码的探究。1.FreeRTOS是如何建立任务的呢?2.FreeRTOS是调度和切换任务的呢?3.FreeRTOS是如何保证实时性呢?前两篇文章分别从代码的层面分析了FreeRTOS是如何建立任务以及建立的任务是怎么样被调
  • 2024-03-29ARM 指令 LDR、STR等详解
    前言    本期和大家主要分享的ARM汇编指令集中的内存操作类指令,涉及到内存操作,不得不说CPSR,SP,LR,PC是非常重要的几个寄存器,所以接下来就来具体观察一下其内存窗口的具体变化!一、跳转指令1.1相对跳转相对跳转:bfun基于当前pc前后32M范围寻找标号,跳转到标号处执行代
  • 2024-03-29【Linux系列-1】-- 必会的 ARM 汇编指令
    原创:lvy嵌入式学习规划学习Linux系统启动流程,必须熟悉几个汇编指令这里不是最全的,只列出一些最常用的汇编指令。一.数据处理指令1.数据传送指令【MOV指令】把一个寄存器的值(立即数)赋给另一个寄存器,或者将一个常量赋给寄存器。MOV指令的格式为:MOV目的寄存器,源操作数M
  • 2024-03-26FreeRTOS从代码层面进行原理分析(2 任务的启动)
    FreeRTOS分析二—任务的启动上一篇文章我们带着三个问题开始了对FreeRTOS代码的探究。1.FreeRTOS是如何建立任务的呢?2.FreeRTOS是调度和切换任务的呢?3.FreeRTOS是如何保证实时性呢?并且在上一篇文章FreeRTOS从代码层面进行原理分析(1任务的建立)中对任务的创
  • 2024-03-22完全理解ARM启动流程:Uboot-Kernel
    内容共计5W+字数,但是我还是很多地方说的不够尽兴。那么下次聊!前言bootloader是系统上电后最初加载运行的代码。它提供了处理器上电复位后最开始需要执行的初始化代码。PC机上引导程序一般由BIOS开始执行,然后读取硬盘中位于MBR(MainBootRecord,主引导记录)中的Bootload
  • 2024-03-16汇编bringup LED
    此节学习视频:https://www.bilibili.com/video/BV1yE411h7uQ?p=6&vd_source=432ba293ecfc949a4174ab91ccc526d6 在STM32上,.s就是汇编,cortexA一般不会提供汇编,必须自己写汇编文件,对于A系列,初始化ram,没办法用c初始化,必须先初始化一些外设,这些外设必须用汇编初始化,但是用到的汇编
  • 2024-03-16ARM-V7架构(二)
    本节主要介绍ARM指令: GNU汇编语法:GNU汇编语法适用于所有的架构,并不是ARM独享的,GNU汇编由一系列的语句组成,每行一条语句,每条语句有三个可选部分,如下:label:instruction@commentlabel即标号,表示地址位置,有些指令前面可能会有标号,这样就可以通过这个标号得到指令的地
  • 2024-03-16ARM-V7架构(一)
    cortex-A7基于ARMV7-A架构,复习一下armv7 ARM-V7的模式类型如下:FIQ快速中断和IRQ外部中断的区别:当一个高优先级中断产生时将会进入FIQ,一般用于高速数据传输和通道处理。当一个低优先级中断产生将会进入IRQ,一般用于通常的中断处理 处理器模式可以通过软件控制进行切换,也可
  • 2024-03-11Java基础输入输出
    好久不写普通Java,一上手发现简单的部分都忘记怎么写了……趁着这次练习,赶紧记一下packageorg.example;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){//System.out.println("Helloworld!");Scannerscanner=ne
  • 2024-01-17如何阅读芯片手册,裸机驱动开发步骤以及纯汇编实现点灯,汇编结合c点灯,c实现点灯
    一.如何阅读芯片手册(datasheet)     作为嵌入式学习者,如何去阅读芯片手册是重中之重。不管是什么芯片手册,在写的怎么天花乱坠,它的本质也就是使用说明书。     可是问题来了,它Y的是本英语的说明书,但是英语不好的友友们不要过于焦虑,我们现在有了很好的翻译软件
  • 2024-01-06一文掌握汇编语言 halt 命令
    汇编 halt 命令,是一条重复执行指定标号的循环命令。处理器暂停,直到出现中断或复位信号才继续,这篇文章主要介绍了汇编语言 halt 命令,需要的朋友可以参考下−目录汇编语言halt命令补充:halt命令手册参考实例:汇编语言halt命令汇编halt命令,是一条重复执行指定标号的循环命
  • 2023-12-30Advanced Algebra高等代数 - 多元建模有多个方程(多元线性)组成 - 使用 NumPy 实现 矩阵的初等行变换:
    线性:指多元变量的每一元变量都是1次方(可以将高于1次方的元,以新一元变量代换,求解再做开方运算)将应用问题转化为多个多元线性方程,并成一组;由多元线性方程组抽出增广矩阵,并以“消元法”的策略,步步判断求解;对增广矩阵的多个“方程”应用“行消元法”化简成阶