当前位置: 首页 > news >正文

韦东山D1S板子——汇编启动代码第一行分析(.long 0x0300006f)

1、汇编启动源码

在这里插入图片描述

2、分析二进制:0x0300006f

2.1、反汇编代码

在这里插入图片描述

2.2、jal指令

在这里插入图片描述

jal指令的作用:跳转到当前PC值偏移offset处执行,其中offset由jal指令的bi[31:12]表示;

2.3、分析指令:j 20030 <reset>

j	20030 	//伪指令,跳转到0x20030地址处执行
j 	reset	//伪指令,跳转到reset标号处执行,reset标号的地址就是0x20030
jal x0,0x30	//跳转到当前PC+0x30处执行,PC此时等于0x20000

上面的三条指令是一样的,只是不同的表达方式,j指令是伪指令。

2.4、按照jal指令格式解析0x0300006f

在这里插入图片描述

2.5、为什么是当前PC偏移0x30?

在这里插入图片描述

3、疑问:写汇编指令和直接写指令的二进制的优劣?

3.1、全志SDK包里的汇编启动代码

在这里插入图片描述

全志SDK里是通过代码来构建出jal跳转指令,相较于韦东山老师写的0x0300006f要更灵活,可以根据启动代码的头来动态计算出偏移量;而韦东山老师写的代码,头的大小只能是0x30字节。

3.2、为什么要写跳转指令的二进制,而不是汇编代码?

我认为直接用伪代码:j reset,让编译器去构建jal指令不是更方便吗?代码可读性也更高,不是很理解直接写二进制的方式,但是看到全志的SDK官网代码也是这么写的,是我没有领悟到这样写的好处吗?有知道答案的博友,欢迎在评论区交流。

相关文章:

韦东山D1S板子——汇编启动代码第一行分析(.long 0x0300006f)

1、汇编启动源码 2、分析二进制&#xff1a;0x0300006f 2.1、反汇编代码 2.2、jal指令 jal指令的作用&#xff1a;跳转到当前PC值偏移offset处执行&#xff0c;其中offset由jal指令的bi[31:12]表示&#xff1b; 2.3、分析指令&#xff1a;j 20030 <reset> j 20030 //伪…...

了解单域名证书和通配符证书的区别,选择合适的SSL证书解决方案

随着互联网的不断发展&#xff0c;网站安全性问题一直备受关注&#xff0c;在保护网站数据安全的过程中&#xff0c;SSL证书一直发挥着至关重要的作用。而在选择SSL证书时&#xff0c;单域名证书和通配符证书是两种常见的选择。本文将详细介绍单域名证书和通配符证书的区别&…...

【LeetCode】7. 整数反转

题目链接 文章目录 Python3官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1 ) ⟯ \lgroup O(|x|)、O(1)\rgroup ⟮O(∣x∣)、O(1)⟯写法2写法3 C官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1 ) ⟯ \lgroup O(|x|)、O(1)\rgroup ⟮O(∣x∣)、O(1)⟯ Python3 官方解法 ⟮ O ( ∣ x ∣ ) 、 O ( 1…...

防止请求重复提交:注解+拦截器的实现方案

文章目录 了解请求重复提交解决思路具体实现 了解请求重复提交 请求重复提交是指用户在一次请求还未处理完成时&#xff0c;重复提交了相同的请求。这种情况通常发生在网络延迟、用户误操作或系统性能不佳等情况下。 请求重复提交可能会导致以下问题和影响&#xff1a; 数据不…...

C#使用mysql-connector-net驱动连接mariadb报错

给树莓派用最新的官方OS重刷了一下&#xff0c;并且用apt install mariadb-server装上“mysql”作为我的测试服务器。然后神奇的事情发生了&#xff0c;之前用得好好的程序突然就报错了&#xff0c;经过排查&#xff0c;发现在连接数据库的Open阶段就报错了。写了个最单纯的Con…...

SpringBoot 定时任务:@EnableScheduling @Scheduled

Scheduled注解参数 cron参数 这个参数是最经常使用的参数&#xff0c;表示接收一个cron参数&#xff0c;cron它是一个表达式&#xff0c;最多接收7个参数&#xff0c;从左到右分别表示&#xff1a;秒 分 时 天 月 周 年&#xff1b;参数以空格隔开&#xff0c;其中年不是必须参…...

Jquery 如何获取子元素。如何找到所有 HTML select 标签的选中项。jQuery 里的 ID 选择器和 class 选择器有何不同

可以使用 jQuery 的子选择器&#xff08;Child Selector&#xff09;或 find() 方法来获取子元素。 子选择器&#xff08;Child Selector&#xff09;&#xff1a; 使用父元素的选择器和 > 符号来选取该父元素的子元素。 例如&#xff1a;选取 id 为 parent 的元素内所有 cl…...

Python Selenium 之数据驱动测试的实现!

数据驱动模式的测试好处相比普通模式的测试就显而易见了吧&#xff01;使用数据驱动的模式&#xff0c;可以根据业务分解测试数据&#xff0c;只需定义变量&#xff0c;使用外部或者自定义的数据使其参数化&#xff0c;从而避免了使用之前测试脚本中固定的数据。可以将测试脚本…...

【Proteus仿真】【STM32单片机】智能语音家居陪护机器人

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器&#xff0c;使用OLED显示模块、红外传感器、蜂鸣器、DS18B20温度传感器&#xff0c;风扇LED、语音识别模块等。 主要功能&#xff1a; 系统运行后&#xff0c;…...

C#上位机序列10: 批量读写+点对点更新+数据类型处理

一、源码结构 二、运行效果 三、源码解析 PLC批量读写点对点更新数据类型处理 优点&#xff1a;根据数据类型&#xff0c;判定监听的地址范围&#xff08;40120_int 监听两个word&#xff1a;40120 40121&#xff1b;40130_long 监听四个word&#xff1a;40130 40131 40132 4…...

MySQL 概述 数据库表操作 数据增删改

目录 MySQL概述前言安装与配置MySQL登录与卸载 数据模型概述SQL简介SQL通用语法简介SQL分类 数据库设计(数据库操作)-DDL数据库操作查询数据库 show databases、select database()创建数据库 create database使用数据库 use删除数据库 drop database 图形化工具连接数据库操作数…...

存储器概述

一、存储系统基本概念...

Fabric.js 使用自定义字体

本文简介 点赞 关注 收藏 学会了 如果你使用 Fabric.js 做编辑类的产品&#xff0c;有可能需要给用户配置字体。 这次就讲讲在 Fabric.js 中创建文本时怎么使用自定义字体、在项目运行时怎么修改字体、以及推荐一个精简字体库的工具。 学习本文前&#xff0c;你必须有一点…...

【C++项目】高并发内存池第七讲性能分析

目录 1.测试代码2.代码介绍3.运行结结果 1.测试代码 #include"ConcurrentAlloc.h" #include"ObjectPool.h" #include"Common.h" void BenchmarkMalloc(size_t ntimes, size_t nworks, size_t rounds) {std::vector<std::thread> vthread(…...

【JavaScript】快速学习JS

JS区分大小写&#xff0c;后面的分号可有可无&#xff1b; 输出语句 window.alter() // 写入警告框&#xff1b;在浏览器中的警告弹窗输出 document.write() // 写入html输出&#xff1b;在html页面中输出 console.log() // 写入浏览器控制台&#xff1b;在控制台输出 变量…...

控制输入流,从控制台打印到文件中,更改输出的位置

public static void main(String[] args) throws IOException {PrintStream printStream System.out;//在默认情况下&#xff0c;PrintStream 输出数据的位置 标准输出&#xff0c;即显示器printStream.print("Tom,hello");/*public void print(String s) {if (s n…...

计算线阵相机 到 拍摄产品之间 摆放距离?(隐含条件:保证图像不变形)

一物体被放置在传送带上&#xff0c;转轴的直径为100mm。已知线阵相机4K7u&#xff08;一行共4096个像素单元&#xff0c;像素单元大小7um&#xff09;&#xff0c;镜头35mm&#xff0c;编码器2000脉冲/圈。保证图像不变形的条件下&#xff0c;计算相机到产品之间 摆放距离&…...

【网络】详解http协议

目录 一、认识URLurlencode和urldecode 二、HTTP协议HTTP协议格式HTTP的方法HTTP的状态码HTTP常见Header 一、认识URL URL叫做统一资源定位符&#xff0c;也就是我们平时俗称的网址&#xff0c;是因特网的万维网服务程序上用于指定信息位置的表示方法。 urlencode和urldecode …...

1819_ChibiOS的互斥信号与条件变量

全部学习汇总&#xff1a; GreyZhang/g_ChibiOS: I found a new RTOS called ChibiOS and it seems interesting! (github.com) 1. 关于会吃信号与条件变量的全局配置提供了4个配置信息&#xff0c;分别是互斥信号的使能、互斥信号的递归支持、条件变量的使能、条件变量的超时使…...

CSDN学院 < 华为战略方法论进阶课 > 正式上线!

目录 你将收获 适用人群 课程内容 内容目录 CSDN学院 作者简介 你将收获 提升职场技能提升战略规划的能力实现多元化发展综合能力进阶 适用人群 主要适合公司中高层、创业者、产品经理、咨询顾问&#xff0c;以及致力于改变现状的学员。 课程内容 本期课程主要介绍华为…...

音乐解锁工具终极指南:3分钟掌握加密音乐解密技巧

音乐解锁工具终极指南&#xff1a;3分钟掌握加密音乐解密技巧 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: https://g…...

番茄小说下载器:永久保存心爱小说的5步终极指南

番茄小说下载器&#xff1a;永久保存心爱小说的5步终极指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 还在为喜爱的番茄小说突然下架而烦恼吗&#xff1f;这款免费开源的番茄小说下载…...

事故数据四年连降,为何山西煤矿的命还是悬在一根绳上?

说实话&#xff0c;写到山西煤矿这四个字&#xff0c;我心里就咯噔一下。2026年5月22日19时29分&#xff0c;山西长治市沁源县山西通洲集团留神峪煤业有限公司井下发生瓦斯爆炸事故&#xff0c;截至到写稿&#xff0c;事故已造成90人遇难。看的心里堵得慌。我特意去翻了翻这些年…...

不止是移动:用UE5.1蓝图优化你的MetaHuman性能(头发渲染、LOD设置避坑指南)

不止是移动&#xff1a;用UE5.1蓝图优化你的MetaHuman性能&#xff08;头发渲染、LOD设置避坑指南&#xff09;在虚幻引擎5.1中&#xff0c;MetaHuman已经成为了数字人创作的重要工具。然而&#xff0c;许多开发者在实现了基础移动控制后&#xff0c;往往会忽视对MetaHuman资产…...

三步制作多系统启动盘:Ventoy完全指南告别重复格式化

三步制作多系统启动盘&#xff1a;Ventoy完全指南告别重复格式化 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 你是否还在为每个系统镜像单独制作启动盘而烦恼&#xff1f;是否因为U盘容量充足却只能…...

Windows Cleaner深度解析:从C盘爆红到系统性能全面优化的完整方案

Windows Cleaner深度解析&#xff1a;从C盘爆红到系统性能全面优化的完整方案 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款完全免费开源…...

破局奈奎斯特:从同步采样时序抖动到全链路EMC,高精度采集卡的超频设计边界

http://www.z-linear.com 在数据采集卡&#xff08;DAQ&#xff09;的选型手册中&#xff0c;工程师们习惯于紧盯“分辨率”和“采样率”这两个显性参数。然而&#xff0c;当面对极其苛刻的工业应用——例如多轴伺服电机的闭环控制、电网电能质量的高次谐波分析、或微弱生物电…...

UE5 RPG实战:告别旧输入系统,用增强输入(Enhanced Input)优雅触发你的技能

UE5 RPG开发实战&#xff1a;用增强输入系统重构技能触发逻辑在虚幻引擎5的RPG开发中&#xff0c;输入管理一直是困扰中高级开发者的痛点。当角色拥有数十个技能、多种状态&#xff08;步行、骑马、施法等&#xff09;时&#xff0c;传统的输入系统往往导致代码臃肿、难以维护。…...

基于动态生物标志物变化率的生物年龄预测:LightGBM模型与纵向数据分析实践

1. 项目概述与核心价值在预防医学和健康管理领域&#xff0c;我们常常面临一个根本性的难题&#xff1a;如何准确评估一个人的“真实”衰老程度&#xff1f;我们都知道&#xff0c;身份证上的“时序年龄”只是一个粗略的刻度&#xff0c;两个同龄人&#xff0c;一个可能精力充沛…...

保姆级教程:用Python将EEG脑电信号转成图像,喂给VGG+LSTM做疲劳检测

从EEG信号到疲劳检测图像&#xff1a;Python实战全流程解析当脑电波遇见计算机视觉&#xff0c;会擦出怎样的火花&#xff1f;传统EEG分析往往局限于时频域特征提取&#xff0c;而本文将带你探索一种革命性的思路——将多通道脑电信号转化为彩色拓扑图像&#xff0c;让卷积神经…...