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

这篇具有很好参考价值的文章主要介绍了【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 拷贝到工程根目录下;
【ARM 裸机】汇编 led 驱动之烧写 bin 文件,ARM 裸机,linux,arm开发,汇编
【ARM 裸机】汇编 led 驱动之烧写 bin 文件,ARM 裸机,linux,arm开发,汇编

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 卡以后分不清谁是谁;
【ARM 裸机】汇编 led 驱动之烧写 bin 文件,ARM 裸机,linux,arm开发,汇编
【ARM 裸机】汇编 led 驱动之烧写 bin 文件,ARM 裸机,linux,arm开发,汇编
对比之下可以看出,sdb 是插入的 SD卡。

2.2、给予 imxdownload 可执行权限

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

chmod u+x imxdownload

【ARM 裸机】汇编 led 驱动之烧写 bin 文件,ARM 裸机,linux,arm开发,汇编
imxdownload 已经具有了可执行权限。

2.3、 烧写

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

【ARM 裸机】汇编 led 驱动之烧写 bin 文件,ARM 裸机,linux,arm开发,汇编
【ARM 裸机】汇编 led 驱动之烧写 bin 文件,ARM 裸机,linux,arm开发,汇编
在工程目录下多了一个 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.s
	arm-linux-gnueabihf-gcc -g -c leds.s -o led.o
	arm-linux-gnueabihf-ld -Ttext 0x87800000 led.o -o led.elf
	arm-linux-gnueabihf-objcopy -O binary -S -g led.elf led.bin
	arm-linux-gnueabihf-objdump -D led.elf > led.dis


clean:
	rm -f *.o led.bin led.elf led.dis

【ARM 裸机】汇编 led 驱动之烧写 bin 文件,ARM 裸机,linux,arm开发,汇编
Makefile 需要注意首行空出来的地方使用 TAB 键 !!!
修改一下 leds.s 为 led.s;
【ARM 裸机】汇编 led 驱动之烧写 bin 文件,ARM 裸机,linux,arm开发,汇编文章来源地址https://www.toymoban.com/news/detail-860540.html

到了这里,关于【ARM 裸机】汇编 led 驱动之烧写 bin 文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ARM裸机编程 | 海思SS528】- 操作 GPIO 寄存器输出低电平点亮 LED 灯

    这篇文章主要介绍在 海思SS528 开发板,去操作某个 GPIO 寄存器输出高、低电平,来熄灭或点亮 LED 灯。 首先,了解一下 ARM裸机编程 ,也就是在一块没有移植操作系统的ARM开发板去编程,相当于把它当成单片机去使用,很多与硬件相关的操作都需要直接读写该硬件的寄存器。

    2024年02月10日
    浏览(43)
  • ARM裸机 - 中断处理编程实战_arm断电文件内容丢失

    #define exception_vector_table_base 0xD0037400 #define exception_reset (exception_vector_table_base + 0x00) #define exception_undef (exception_vector_table_base + 0x04) #define exception_sotf_int (exception_vector_table_base + 0x08) #define exception_prefetch (exception_vector_table_base + 0x0C) #define exception_data (exception_vector_table_base + 0x10) #de

    2024年04月16日
    浏览(81)
  • ZYNQ自带ARM核处理器的FPGA芯片烧写及最小系统搭建,bit文件烧写

    1. 烧写背景 FPGA芯片,如果是ZYNQ系列这种自带ARM处理核的器件,包含PS和PL处理部分,只是逻辑的debug可以只使用PL部分。但是如果要实现文件的烧写就必须通过PS部分进行烧写。因为与外部flash芯片相连的QSPI是通过PS部分连接的,且也需要PS部分对FPGA的boot进行配置。   Zynq700

    2024年02月08日
    浏览(47)
  • Linux驱动开发与裸机开发区别

    1、底层。跟寄存器打交通,有些MCU提供了库 1、Linux下驱动开发直接操作寄存器不现实,不是直接操作寄存器; 2、根据Linux下的各种驱动框架进行开发,一定要满足框架,也就是 Linux下各种驱动框架的掌握 ; 3、驱动最终表现就是/dev/xxx文件。打开,关闭,读写… 4、现在新的

    2024年02月12日
    浏览(31)
  • 在linux中进行arm交叉编译体验tiny6410裸机程序开发流程

    在某鱼上找了一个友善之臂的Tiny6410开发板用来体验一下嵌入式开发。这次先体验一下裸机程序的开发流程,由于这个开发板比较老旧了,官方文档有很多过期的内容,所以记录一下整个过程。 按照光盘A中的文档《04- Tiny6410 Linux开发指南.pdf》的 1.3.5 节描述,用光盘中的 a

    2024年02月15日
    浏览(35)
  • 单片机二进制bin(map、反汇编)文件分析(IAP程序跳转,PC指针指向问题分析)

       .bin 文件就是二进制文件(binary file),这种文件只包含机器码。所有的数据都是机器可以执行的指令码、指令参数或者常量数据,不包含其它调试信息。加载到内存或者支持XIP(就地执行)的存储器中规定好的加载地址之后直接从规定好的运行地址开始运行即可。   

    2024年02月03日
    浏览(58)
  • ARM Linux 内核启动1 —— 汇编阶段

    1、Makefile 分析 (1) kernel 的 Makefile 写法和规则等,和 uboot 的 Makefile 是一样的,甚至 Makefile 中的很多内容都是一样的。 (2) kernel 的 Makefile 比 uboot 的 Makefile 要复杂,这里我们并不会一行一行的详细分析。 (3) Makefile 中只有一些值得关注的会强调一下,其他不强调的地方暂时可以

    2024年02月12日
    浏览(65)
  • 【IMX6ULL驱动开发学习】02.IMX6ULL烧写Linux系统

    由于我买的是正点原子的IMX6ULL阿尔法开发板,但是我是看韦东山老师视频学习的驱动 所以这里我烧录的方法是按照韦东山老师的课程来的 这里给出烧写Linux系统用到的工具 链接:https://pan.baidu.com/s/1bD-xxn3K8xQAVkJSaJmTzQ 提取码:af6w 下载解压后,可以看到烧写工具 烧写Linux系统

    2024年02月13日
    浏览(59)
  • Linux下编译arm 32 出错(/bin/bash: arm-none-linux-gnueabi-gcc: command not found )

    一、arm-none-linux-gnueabi-gcc不能再64位系统下下编译ARM的32位库的问题解决方法如下: sudo apt-get install lib32stdc++6 sudo apt-get install lib32ncurses5 sudo apt-get install lib32z1 二、交叉编译工具没有写入环境变量或写错,重新写入环境变量 将交叉编译工具 bin 目录添加到系统 PATH 环境变量中:

    2024年02月14日
    浏览(48)
  • ZYNQ 启动过程简介 以及 ZYNQ 裸机生成BOOT.BIN

    下图是ZYNQ的启动过程   上电复位等完成后,先执行BootRom,然后再根据MIO设定的启动方式选择对应从哪里启动,无论从哪里启动,都需要一个BOOT.BIN文件,对于裸机程序来说: BOOT.BIN应对包含如下信息: 1、FSBL 代码,后缀elf; 2、用户程序,后缀elf; 3、用户PL逻辑,后缀bit;

    2024年02月08日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包