摘要
本系列内容是我在学习 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 |
| 作者 VX | Qinghua_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 |


被折叠的 条评论
为什么被折叠?



