【ARM 裸机】汇编 led 驱动之烧写 bin 文件

1、烧写概念

bin 文件烧写到哪里呢?使用 STM32 的时候烧写到内部 FLASH,6ULL 没有内部 FLASH,是不是就不能烧写呢?不,6ULL 支持 SD卡、EMMC、NAND FLASH、NOR FLASH 等方式启动,在裸机学习的工程中,选择 SD卡启动,所以将 bin 文件烧写到 SD卡中。

烧写并不是将 bin 文件直接拷贝到 SD卡中,而是将 bin 文件烧写到 SD卡的绝对地址上,而且对于 I.MX,不能直接烧写 bin 文件,需要添加一个头部,会使用到正点原子的 imxdownload 软件,将 imxdownload 拷贝到工程根目录下;
在这里插入图片描述
在这里插入图片描述

2、向 SD 卡烧写 bin 文件

使用 imxdownload 向 SD 卡烧写 led.bin 文件,命令格式如下;

./imxdownload <.bin file> <SD Card>

2.1、查看 SD卡

在 Ubuntu 下向 SD卡烧写裸机 bin 文件,需要将 SD卡连接 Ubuntu,参考链接:【Linux】Ubuntu 磁盘管理 。Ubuntu 下所有的设备文件都在目录“/dev”里面,所以插上 SD 卡以后也会出现在“/dev”里面,其中存储设备都是以“/dev/sd”开头的,我们要先看一下不插 SD 卡的时候电脑都有哪些存储设备,以防插入 SD 卡以后分不清谁是谁;
在这里插入图片描述
在这里插入图片描述
对比之下可以看出,sdb 是插入的 SD卡。

2.2、给予 imxdownload 可执行权限

我们直接将软件 imxdownload 从 Windows 下复制到 Ubuntu 中以后,imxdownload 默认是没有可执行权限的,我们需要给予 imxdownload 可执行权限;

chmod u+x imxdownload

在这里插入图片描述
imxdownload 已经具有了可执行权限。

2.3、 烧写

./imxdownload <.bin file> <SD Card>

在这里插入图片描述
在这里插入图片描述
在工程目录下多了一个 losd.imx 的文件,之前一直说头部,其实是给 led.bin 添加头部之后个生成一个新的 losd.imx,losd.imx 被烧到 SD卡里面。

2.4、验证

将 SD卡插入到开发板中,启动方式选择 SD卡,即把拨码开关的 1 和 7 拨上去;

I.MX6ULL-MINI_led

上电之后,可以看到,led1(红色的)过一会才亮起;

2.5、优化编写 Makefile

led.bin: leds.sarm-linux-gnueabihf-gcc -g -c leds.s -o led.oarm-linux-gnueabihf-ld -Ttext 0x87800000 led.o -o led.elfarm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.binarm-linux-gnueabihf-objdump -D led.elf > led.disclean:rm -f *.o led.bin led.elf led.dis

在这里插入图片描述
Makefile 需要注意首行空出来的地方使用 TAB 键 !!!
修改一下 leds.s 为 led.s;
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/310517.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言顺序表的简单介绍

顺序表的分类&#xff1a; 静态顺序表物理结构上呈线性存储&#xff0c;而动态在逻辑结构上呈线性存储&#xff08;何为线性存储&#xff1f;数据按照线性顺序&#xff08;也称为顺序存储&#xff09;排列在连续的存储单元中。&#xff09;动态顺序表当空间不够时可以自行增容&…

三.音视频编辑-音频混合-概述

引言 当我们在前两篇博客中成功地构建了一个媒体组合&#xff0c;并且略过了音频部分时&#xff0c;我们意识到了我们需要对这个项目进行更详细的探讨。在本篇博客中&#xff0c;我们将会展示如何创建一个包含视频轨道、配音音频轨道以及背景音频轨道的完整媒体组合。更进一步…

Python setuptools简介

distutils(包分发的始祖) 简介 distutils 是 Python 的一个标准库&#xff0c;从命名上很容易看出它是一个分发&#xff08;distribute&#xff09;工具&#xff08;utlis&#xff09;&#xff0c;它是 Python 官方开发的一个分发打包工具&#xff0c;所有后续的打包工具&…

Android IPC机制

在Android系统中&#xff0c;IPC&#xff08;Inter-Process Communication&#xff0c;进程间通讯&#xff09;是指在不同进程之间传送数据和通讯的机制。Android中的应用通常运行在独立的沙箱环境中的进程里&#xff0c;由于安全限制&#xff0c;这些进程无法直接访问彼此的内…

【vue】v-bind动态属性绑定

v-bind 简写:value <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><styl…

【深度学习实战(6)】搭建通用的语义分割推理流程

一、代码 #---------------------------------------------------# # 检测图片 #---------------------------------------------------# def detect_image(self, image, countFalse, name_classesNone):#---------------------------------------------------------## 在…

IDEA 找不到或无法加载主类

IDEA 中&#xff0c;有时候会遇到明明存在这个类&#xff0c;import 也没有报错&#xff0c;但编译时会报找不到或无法加载主类。 解决方法&#xff1a; 图像化操作 右侧 Maven > 根项目 > Lifecycle > clean > install 命令操作 mvn clean install

如何更好地理解 Vue 3 watch 侦听器的用法

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Vue error:can not find module ‘@/views/××ב

如果你线上环境遇到这个问题的话&#xff0c;请不要着急 因为我已经踩过坑了&#xff0c;下边咱们说一下这个原因以及解决错失。 从字面上来看是相应路由找不到模块&#xff0c;本地没有问题&#xff0c;线上有问题&#xff0c;就像是本机说话计算机能够理解&#xff0c;而线上…

M系Mac关闭SIP

文章目录 M系Mac关闭SIP一&#xff1a;查看SIP状态二&#xff1a;关闭SIP步骤 M系Mac关闭SIP 一&#xff1a;查看SIP状态 1、使用终端 打开终端 输入csrutil status&#xff0c;回车 你会看到以下信息中的一个&#xff0c;指示SIP状态 已打开 System Integrity Protection s…

康耐视visionpro-CogDistancePointLineTool操作工具详细说明

◆CogDistancePointLineTool:功能说明&#xff1a; 测量点到线的距离 备注&#xff1a;在“Geometry-Measurement”选项中的所有工具都是测量尺寸或角度工具&#xff0c;包括测量线与线的角度、点与线的距离、圆与圆的距离等测量工具&#xff0c;工具使用的方法相似。 ①.打开…

【LeetCode: 3117. 划分数组得到最小的值之和 + 动态规划】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

蓝桥杯 — —灵能传输

灵能传输 友情链接&#xff1a;灵能传输 题目&#xff1a; 输入样例&#xff1a; 3 3 5 -2 3 4 0 0 0 0 3 1 2 3输出样例&#xff1a; 3 0 3思路&#xff1a; 题目大意&#xff1a;给出一个数组&#xff0c;每次选择数组中的一个数&#xff08;要求不能是第一个数与最后一个…

分享一个 git stash 的实际使用场景。

当我将新的变更记录提交为 git commit --amend 后&#xff0c;发现这需要修改云端上的提交记录&#xff0c;也就是 vscode 中会出现这张图 于是&#xff0c;我通过 git reset head^ 撤销掉刚刚的提交。 reset 前&#xff1a; reset 后&#xff1a; 但在撤销的同时&#xf…

设计模式之观察者模式(上)

观察者模式 1&#xff09;概述 1.定义 定义对象之间的一种一对多依赖关系&#xff0c;使得每当一个对象状态发生改变时&#xff0c;其相关依赖对象皆得到通知并被自动更新。 观察者模式的别名包括发布-订阅&#xff08;Publish/Subscribe&#xff09;模式、模型-视图&#…

纯css实现switch开关

代码比较简单&#xff0c;有需要直接在下边粘贴使用吧~ html: <div class"switch-box"><input id"switch" type"checkbox"><label></label></div> css&#xff1a; .switch-box {position: relative;height: 25px…

C++ 封装

1.封装 cpp认为万事万物都可以封装 封装将属性和行为作为一个整体&#xff0c;表现生活中的事物。 将属性和行为加以权限控制。 语法&#xff1a; class 类名{ 访问权限: 属性或者行为 } //学生类 class Student { public:void setName(string name) {m_name name;}vo…

已经下载了pytorch,但在正确使用一段时间后出现No module named torch的错误

问题描述 使用的是叫做m2release的虚拟环境&#xff0c;在此环境下使用conda list可以发现是存在pytorch的&#xff0c;但是运行代码时却报No module named torch的错误。 解决方案 想尝试卸掉这个pytorch重新装一次&#xff0c;但是想卸载会提示找不到&#xff0c;想重新…

经典问题解答(顺序表)

问题一&#xff1a;移除元素 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不…

【SQL】DISTINCT GROUP BY

找到所有办公室里的所有角色&#xff08;包含没有雇员的&#xff09;,并做唯一输出(DISTINCT) 用DISTINCT : SELECT DISTINCT B.Building_name,E.Role FROM Buildings B LEFT JOIN Employees EON B.Building_name E.Building需要找到的结果&#xff1a;所有办公室名字&#…