IMX6ULL学习笔记_Boot和裸机篇(5)--- IMX6ULL使用ECSPI3驱动Flash启动程序

摘要

本系列内容是我在学习 IMX6ULL 裸机开发所遇到的问题记录,以及一些学习的步骤流程。本篇内容主要讲述我的开发环境是如何,以及我的开发方式是什么。程序学习将使用 BootLoader + APP 应用区 的方式开发。使用BootLoader来进行升级,前期不将 BootLoader 作为开发重点,所以先使用 UBoot 作为我们的 BootLoader ,后续会使用自写的 BootLoader 。

本节使用ECSPI驱动Flash启动,这部分内容我看网上讲的比较少,这里做一个记录。

项目开源链接以及作者信息

参数
github主页https://github.com/snqx-lqh
github项目地址https://github.com/snqx-lqh/IMX6ULL_LearningRecord
gitee项目地址https://gitee.com/snqx-lqh/IMX6ULL_LearningRecord
作者 VXQinghua_Li7

📖 欢迎交流 如果对你有帮助,希望可以帮我点个赞👍和收藏,谢谢

基础环境

硬件环境:正点原子IMX6ULL MINI板 V1.7 EMMC板

裸机程序编写软件:SEGGER Embedded Studio V8.24 。 为了在Windows环境下编译裸机开发,所以使用 SES 的软件编写。

本文代码路径

本文的代码将存放在开源项目的:02_Firmware\01_CodeWithoutOS\04_FLASH_Boot中。这节的代码,主要是移植SDK中的中间件操作EMMC

流程说明

只是为了验证ECSPI启动FLASH的可行性,使用的是W25Q128的FLASH,验证流程如下。

1、使用EMMC或者SD卡中的Uboot启动代码,然后烧写本章节提供的带xmodem接收的代码。
2、在代码中,按键触发xmodem接收并且写入Flash,这里写一个裸机程序,就随便烧一个正点原子提供的闪烁灯的程序,也可以烧UBoot程序,反正要烧imx格式的,也就是带了头部信息的文件。
3、将引脚切换到SPI Flash 启动的模式。启动。

EMMC启动代码

这部分和之前内容一样,正常启动就可以。

烧裸机到Flash

我的代码写的是按键按下,开始xmodem接收,然后把获取到的数据烧写到Flash,从代码里就可以看到,要从偏移1KB的地址开始烧写。

切换引脚

根据下面这3张图,得到最后的引脚在拨码开关上是。10001100。除了拨码开关,由于我是使用的ECSPI3,LCD连接线还要做调整,这个可能需要自己买个转接线,然后再做处理。还有就是 LCD_DATA_17和LCD_DATA_19需要拉高。这个看Type=0x450,450是地址。 那一行就知道了。主要是控制的BOOT_CFG4[3]和BOOT_CFG4[1]。切换后,启动看是否是裸机状态就行了。可以下载后面一点的代码,比如printf开始的,或者写了启动文件的,感觉前面几个代码,不知道有啥问题,后面研究。我是这样做的。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

项目推荐

在这里推荐一下我自己写的上位机,为了方便裸机开发,我设计了一个上位机,上位机解决了普通上位机无法使用终端、无法发送协议文件,以及SecureCRT上位机又无法发送字符串而且每次选择文件比较麻烦的问题,更多内容看我的开源项目中的文档说明。

参数
github主页https://github.com/snqx-lqh
github项目地址https://github.com/snqx-lqh/JYSWJ
gitee项目地址https://gitee.com/snqx-lqh/JYSWJ

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少年、潜行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值