0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Booting SBL和板载OSPI Flash烧录

星星科技指导员 来源:TI 作者:TI 2023-03-17 09:44 次阅读

AM243x 是TI Sitara产品线推出的高性能MCU+产品,是一种性能强劲的多核异构MCU,拥有4颗800MHz 主频的Cortex R5F核心和1颗400MHz 主频的Cortex M4F,以及专门针对多协议工业通信总线的2个PRU_ICSSG(2× Gigabit Industrial Communication Subsystems)模块,可以实现Profinet IRT,Profinet RT,EtherNet/IP,EtherCAT等通信方式。

在这类多核异构MCU / CPU产品开发中,由于芯片电源轨上的复杂性以及外设的丰富程度,不可避免的会接触到系统复杂的boot环节,以及多核调试带来的挑战,本文以AM243x-LP评估板为例,对AM243x的booting相关内容进行了初步的介绍,并完整演示了RBL-SBL-APP的整个启动过程以及程序烧录的方法。

本文以AM243x多核芯片体系结构为切入点,简要介绍了AM243x的启动过程,包括加电顺序、引导模式选择、ROM引导过程、SBL过程、SBL-编译和SYSFW介绍。以ADC演示为例,结合AM243x LP评估板,完整演示了RBL->SBL->APP启动过程,简要介绍了在UART模式下编程外部OSPI Flash的环境设置和操作过程,方便用户在AM243x芯片上快速启动应用程序开发。

2.AM243x 上电后的Booting环节:

下图是AM243x完整的boot流程:

ROWER ON -> ROM Bootloader(RBL) -> Secondary Bootloader(SBL) -> Application Binary。 上电后,芯片进行内部逻辑的初始化,之后先执行ROM中的BOOT代码,再执行用户自定义的二级BOOT代码,最后执行应用程序.

poYBAGQTxdmAdx5tAAAef6cmfU4969.png

Figure 1 BOOT 启动流程

2.1 上电时序和启动方式介绍

AM243x 芯片拥有多个电源域,为不同的内部逻辑和外设供电,,下图是AM243x的上电时序图,可以在datasheet找到更详细的介绍。

pYYBAGQTxdmAYtfWAAAaveAtY3E163.png

Figure 2 Power Sequence

在满足供电时序的情况下,MCU_PORz信号最终释放了对内核复位的控制, MCU_PORz的上升沿会锁存SYS_BOOTMODE[0:15]这些管脚的上下拉状态,并由此确定芯片的启动模式和启动介质,然后由ROM Bootloader来读取启动信息

AM243x 有两种主要的启动方式:Host boot modes 和 Memory boot modes。

Host boot modes:MCU从不同的外设进行启动,比如从UART、Ethernet、USB接口启动;

Memory boot modes:MCU从不同的外部存储介质,比如QSPI Flash、I2C EEPROM、SD卡、U盘等存储器启动;

注意:AM243x 有Primary Boot和Backup Boot功能,这意味着AM243x在Primary Boot失败的情况下可以用 Backup Boot 来启动,这个可以由 BOOTMODE 管脚进行设置。

关于 BOOTMODE 管脚配置,我们可以看到是由16根信号线组成,其中高两位为Reserved。其16bit对应的是BOOTMODE 00-15这16根信号线,原理图中对应的管脚为GPMC0_AD0 – 15。

pYYBAGQTxdqAGs7nAAAgjBOjdKk196.png

Figure 3 BOOTMODE Pin Mapping

PLL Config 针对不同的外部晶振频率进行配置。

poYBAGQTxduAa6arAAAh7b5C4eQ574.png

Figure 4 PLL Reference Clock Selection

Primary Boot 模式如下:

pYYBAGQTxdyAUuS8AAAmwRBz6Pk579.png

chaijie_default.png

Figure 5 Primary Boot Mode Selection

Backup Boot 模式如下:(注意Backup模式下可启动的方式较少)

pYYBAGQTxd6AdLYsAAAooG3eGjc691.png

Figure 6 Backup Mode Selection

注意:由于ROM Code对不同的启动接口或介质使用的管脚是固定的,在设计的过程中需要注意选择对应的管脚,详细的管脚信息可以在Technical Reference Manual中查看。

2.2 ROM启动过程介绍

AM243x的ROM Code分为两部分,分别是DMSC ROM code和Public ROM code,这里DMSC的全称为Device Management Security Controller,内部是一个主频250MHz 的Cortex M3协处理器, DMSC模块是芯片启动的主控制器.

DMSC ROM code:DMSC ROM 的代码会涉及到以下几个部分:

设备管理;

在 BOOT_CFG中配置boot vectors,控制 R5内核的reset释放, 需特别指出,启动过程中DMSC是R5内核的控制者;

通过主DMSS(Data Movement Subsystem)和Secure Proxy进行IPC的配置;

对R5内核和SA2UL(Security Accelerator)的PLL进行配置;

X509认证的解析;

SHA512算法对image integrity check的SA2UL配置;

Public ROM code:下图是Public ROM code的框架。

poYBAGQTxd6AI-nYAABCCGlVbYo992.png

Figure 7 Public ROM Code Architecture

Main Module是整个Public ROM code的顶层代码循环,它可以调用X509密码认证模块、Log Trace模块、System模块以及外设驱动的相关功能代码,在这里会重复执行直到MCU接收到完整的boot image,也可以被 DMSC置于sleep模式;

芯片上电后一级启动过程可以分为三部分:

Hardware 部分:这里主要指电源的上电过程,以及芯片内部逻辑的初始化;

DMSC部分:DMSC ROM Code 会首先配置启动过程中看门狗WDT的溢出时间为180秒,接下来配置MCU PLL,根据不同Boot Mode进行相应的Firewall配置,MCU的Secure Proxy/Ring Accelerator,然后DMSC会给MCU发送Boot Mode Info,最终DMSC释放R5内核的Reset信号,R5内核开始工作;

R5 内核部分:R5 内核拿到DMSC发送的Boot Device Info(由BOOTMODE管脚的配置决定)后,通过对应的Boot模式开始启动,R5内核会请求DMSC对接收到的image代码进行image integrity check,如果成功则继续向下执行,如果Primary Boot的image无效,R5会切换到Backup Mode 进行boot image接收并再次调用DMSC进行image integrity check,这样重复执行调用,直到180秒看门狗溢出为止,这时MCU会被复位,重复上面的所有流程。

当image integrity check成功后,R5内核会对Main Domain的PLL进行配置,接下来DMSC会停止Clock并且Reset R5,R5在复位结束后开始执行Boot Image(这里在RAM里面的Boot Image不受R5复位的影响,处于保持状态),整个Boot流程完成,芯片开始二级BOOT流程。

pYYBAGQTxd-ABUxBAABMpUGNOkM583.png

Figure 8 Boot Process

2.3 二级SBL启动过程介绍

SBL的全称是Second boot loader,用于完成芯片的一些初始配置,拷贝DMSC的SYSFW到片内RAM以及加载多核应用代码。 下图是一个典型的SBL流程. DMSC模块会再次启动WDT看门狗并设定开门狗溢出时间为180秒。 R5 core 0执行SBL代码,先拷贝FLASH上的DMSC SYSFW到片内RAM, DMSC ROM代码对SYSFW image 进行完整性检查后,将SYSFW加载到DMSC模块,之后DMSC模块会跳出DMSC ROM代码,改为执行DMSC SYSFW代码。 SBL会继续加载和解析R5核的应用代码并根据Image信息设定启动地址,完成后会请求DMSC 释放其他R5核的复位信号,所有内核开始执行程序.

poYBAGQTxeCAIaaSAABBb2aoa10700.png

pYYBAGQTxeCAZ4L7AAA-i0auHoA374.png

Figure 9 SBL Boot Process

3.AM243x-LP 使用介绍:

AM243x-LP评估板提供了丰富的功能和接口,XDS110调试器也被集成在电路板上面,方便用户的烧录调试,同时USB转UART功能也通过同一USB接口实现,用于串口log信息的打印。

poYBAGQTxeGALRPkAAC0QM2J5dY427.png

Figure 10 System Architecture

评估板上的另一个USB Type C接口用来供电,整板的电流会在2A左右,这里建议先连接Micro USB,建立串口连接后,然后再连接USB Type C接口。USB Type C的连接线需要使用标准的全功能连接线,否则无法与评估板上的CC逻辑控制器TUSB320LAIRWBR进行正常通信,造成输出电流配置不正常,无法正确对评估板供电。

poYBAGQTxeKAfFm9AAEFF2_2rCs838.png

Figure 11 AM243x-LP Board

正常连接两根USB线之后,板子上会有4个LED灯点亮,分别是LD6、LD7、LD8和LD11四个绿色LED灯。LD9红色灯会在USB Type C插入的瞬间亮一次,之后熄灭,如果常亮,则代表供电有问题。

pYYBAGQTxeOAHMMeAAIvOaKmdU0684.png

pYYBAGQTxeSAXtcWAAIWW7XLFvE942.png

Figure 12 AM243x-LP Board LED Status

在Micro USB线连接后,Windows系统会进行XDS110的驱动安装(CCS安装时会自带驱动),安装完成后,会在设备管理器里面出现两个对应设备,如下图。

poYBAGQTxeWAUGyTAAA_uY05nPA372.png

Figure 13 AM243x-LP Board USB Port

User UART对应的是用户可用的USB转串口打印log的端口,在AM243x-LP评估板中对应的是AM243x的MAIN_UART0接口。

下图是AM243x-LP评估板上的四个按键,其功能分别如下:

pYYBAGQTxeWAAmw0AAII8XqLjBw355.png

poYBAGQTxeaACk90AAAl7KrD1a4819.png

Figure 14 AM243x-LP Board Push Buttons

在理解这几种不同的Reset之前,我们先看看AM243x整个芯片构成的两个Domain,分别是MCU Domain和Main Domain,它们分别由下面的子模块构成。

pYYBAGQTxeeAW4ItAABgBxz4LxQ359.png

pYYBAGQTxeiAXlH4AAAsXCaZqRs002.png

poYBAGQTxeiAalMeAAAhPxhf72w060.png

Figure 15 AM243x Power Domain

我们可以看到在不同的Domain里面包含了不同的模块和外设,这个就决定了不同Domain对不同外设和模块的控制权。在Reset部分,可以通过不同的Reset源对不同的Domain进行独立控制,也可以通过配置改变其控制Domain的范围。

MCU_PORz:可以看作整个芯片(MCU+MAIN)的冷启动复位,可以进行动态Boot Mode更改而不用断电;

MCU_RESETz:MCU Domain的热复位;

SoC_RESET_REQz: Main Domain的热复位;

在AM243x-LP评估板上可以由8位拨码开关来更改Boot配置,其中第8位没有使用,是悬空状态,下面的表格列出了这7位配置对应的Boot Mode情况。

pYYBAGQTxemAIS6sAAAwWMuD0K0425.png

Figure 16 AM243x LP Boot Mode Selection Table

其中常用的三种模式如下图所示:

poYBAGQTxeqAesmNAAIASrx_weo456.png

poYBAGQTxeuAaD-eAAH7D0Y12Sw153.png

pYYBAGQTxeuAFgGSAAH2EtmfrCA603.png

Figure 17-1 AM243x LP Boot Mode Switch

关于 Backup Boot Mode,在AM243x-LP是默认配置为NONE模式(BOOTMODE13:10 = x 0 0 0),这里暂时不用关心。

poYBAGQTxeyAM3MuAAA8YfsPih4123.png

Figure 17-2 AM243x LP Boot Mode Switch (Backup Mode Configuration)

可以在断电状态下更改拨码开关的配置,然后重新上电。或者在通电的情况下改变拨码开关,然后用SW1按钮实现MCU_PORz冷复位以使得新的Boot Mode生效。

4. SDK 例程中 SBL 的介绍:

如果要对 SDK 中的 SBL 程序在CCS中进行编译,需要额外安装OpenSSL,可以在下面的地址下载light版本,

https://slproweb.com/download/Win64OpenSSL_Light-3_0_0.exe

在安装的过程中,注意选择 The Windows system directory选项。

pYYBAGQTxeyAIBIRAAByiSE-2Ck506.png

Figure 18 OpenSSL Installation

安装完成后,需要在windows系统的Path变量中加入下面的路径。

C:Program FilesOpenSSL-Win64bin

完成后,即可导入C:timcu_plus_sdk_am243x_0x_xx_xx_xxexamplesdriversboot 中的例程,并进行编译。这里我们导入的是 sbl_ospi 这个文件夹内的工程。

poYBAGQTxe2ACzFWAABPXMMB-VY574.png

Figure 19 SBL Boot Project

SBL NULL:这个SBL只做了MCU的初始化并且把内核至于WFI模式(Wait For Interrupt);

SBL OSPI:初始化MCU并且从OSPI Flash 的 0x80000地址读取并启动多核appimage代码;

SBL OSPI Multi-Partition:初始化MCU并且从OSPI Flash 不同的偏移地址读取各个内核的代码;

SBL UART:初始化MCU并且从UART通过Xmodem协议读取并启动多核appimage代码;

SBL UART Uniflash:配合py脚本的flash writer程序,用来烧录OSPI Flash;

4.1 SBL boot image 创建

SBL 与一般的应用程序类似,可以通过CCS来创建并编译,在从 .out文件到boot image的转化过程,其详细情况如下:

虽然SBL工程与应用程序类似,但SBL 的入口地址与用户应用程序的入口地址有所不同。在AM243x 的 ROM code 会把程序的入口地址同时配置给 both R5FSS0-0 和R5FSS0-1两个内核。 考虑到SBL只运行在R5SS0-0上,我们需要把R5FSS0-1置于WFI模式,只运行R5FSS0-0内核,这个操作可以通过增加link参数 -e_vectors_sbl来实现。

pYYBAGQTxe6Af0uHAAB1Gua3YYM278.png

Figure 20 AM243x Link Command

在进入main()函数之后,首先必须调用Bootloader_socLoadSysFw来加载 SYSFW 到 DMSC 的Cortex M3内核,进行 board config 操作。

备注:SYSFW默认以 .h 头文件的形式被编译链接到SBL,启动过程中会发送到DMSC内核的专有RAM区域,SYSFW的文件内容在 C:timcu_plus_sdk_am243x_0x_xx_xx_xxsourcedriverssciclientsocam64x_am243x sysfw_signed.h 里面。

pYYBAGQTxe-ADxqNAACWoXsJZiE752.png

Figure 21 Bootloader_socLoadSysFw

在SBL里,vectors默认被链接到0x7000000,而且SBL中不能使用ATCM(A Tightly-Coupled Memory)和BTCM(B Tightly-Coupled Memory)的地址空间,SBL 只能使用 0x70000000到0x70080000这个地址范围的空间,包含code、data、stack之类。

在编译后,SBL的 .out 文件会通过GCC的objcopy转换成 .bin 文件,接下来会通过 Signing Scripts 签名生成可启动的 .tiimage 文件,在这里会使用一个默认的key来签名,即使是非安全启动MCU芯片也需要走这个流程。这个 Signing Script 会用到前面安装的 OpenSSL。

RBL在加载SBL的时候是需要SBL为被签名的格式,可以通过下面的命令来对SBL进行签名。

cd C:timcu_plus_sdk_am243x_0x_xx_xx_xxtoolsbootsigning

.x509CertificateGen.ps1 -b {BOOTIMAGE_BIN_NAME} -o {BOOTIMAGE_NAME} -c R5 -l 0x70000000 -k rom_degenerateKey.pem -d DEBUG -j DBG_FULL_ENABLE -m SPLIT_MODE

这里我们用一个例程生成的bin文件来演示一下,首先拷贝CCS生成的bin文件到C:timcu_plus_sdk_am243x_0x_xx_xx_xxtoolsbootsigning,方便命令行下操作。

poYBAGQTxfCAZc6wAABTQXjcHUc755.png

Figure 22 Signing Files Folder

注意:这里要用到 Windows 10下面的Powershell命令行环境,在开始菜单输入Powershell并执行,即可进入界面,公司电脑有可能对Powershell的执行权限有限制,这个在执行的时候会提示。

.x509CertificateGen.ps1 -b sbl_ospi_am243x-lp_r5fss0-0_nortos_ti-arm-clang.bin -o sbl_ospi_am243x-lp.tiimage -c R5 -l 0x70000000 -k rom_degenerateKey.pem -d DEBUG -j DBG_FULL_ENABLE -m SPLIT_MODE

至此,我们在这里可以看到最终生成的可以用来启动的SBL的 tiimage 文件。

pYYBAGQTxfCAdUtUAAAxpUn27i4893.jpg

Figure 23 Powershell console command execution

poYBAGQTxfGAQc8yAABmTft1tpY657.png

Figure 24 Signing result of tiimage

5. SBL 烧录并引导应用程序运行:

下面我们快速验证一下SBL配合用户应用程序进行boot并运行的情况。

5.1 安装Phython 脚本

板载外部QSPI Flash需要通过python脚本进行烧录,所需的Python 3 环境下载地址如下。

https://www.python.org/downloads/windows/

注意安装Python的时候需要选择把Python的路径加入到系统路径,安装完成后可以在CMD Console下验证是否安装成功。

pYYBAGQTxfKAA7hMAAB-oRi85BE502.png

Figure 25 Python Installation

poYBAGQTxfKAaRjoAAA1ORBuve8966.png

Figure 26 Python Environment Check

接下来需要执行下面的命令安装与串口下载相关的组件,注意需要在管理员模式打开cmd窗口。

pip install --upgrade pip

pip install pyserial xmodem tqdm

pYYBAGQTxfOASjgaAAD3Nc4Z47o909.png

Figure 27 Python toolset installation

5.2 生成应用代码Image

打开 CCS后,导入SDK的ADC驱动例程,路径如下。

C:timcu_plus_sdk_am243x_0x_xx_xx_xxexamplesdriversadcadc_singleshotam243x-lpr5fss0-0_freertos

poYBAGQTxfSAV5suAABwwL0d7oU061.png

Figure 28 Import SDK ADC example into CCS

pYYBAGQTxfSAPWnZAABxnccdcA8474.png

Figure 29 Confirm the example import

poYBAGQTxfWAeisoAACd8LgxPvg712.png

Figure 30 Build the example

编译完工程后,我们可以看到生成的相关文件,其中.appimage是应用程序要烧录到外部 SPI Flash的文件。

5.3 使用UART 启动模式烧录OSPI SBL文件和应用代码Image

接下来的烧录操作需要在windows的command console里操作,为了方便这个流程,我们可以利用bat文件来直接执行,提高效率。

在ccs的workspace目录中adc_singleshot_am243x-lp_r5fss0-0_freertos_ti-arm-clang工程目录下,我们新建一个文件夹,暂且命名为AM243xProgFlash,如下图:

poYBAGQTxfaAYVnxAAA_M6pM4q4298.png

Figure 31 UART programing script files

在这个文件夹里面,@Prog-Boot+App.bat 是手工创建的,里面执行了简单的python命令,sbl_ospi.release.tiimage、sbl_uart_uniflash.release.tiimag是从 C:timcu_plus_sdk_am243x_0x_xx_xx_xxtoolsbootsbl_prebuiltam243x-lp 这个路径拷贝过来的。

其中sbl_ospi.release.tiimage 也可以使用上面我们编译成功的 sbl_ospi 工程的 tiimage 文件。uart_uniflash.py 从C:timcu_plus_sdk_am243x_0x_xx_xx_xxtoolsboot 拷贝过来。ospi_sbl+app.cfg 是根据 C:timcu_plus_sdk_am243x_0x_xx_xx_xxtoolsbootsbl_prebuiltam243x-lpdefault_sbl_ospi.cfg 文件修改的。

下面是 @Prog-Boot+App.bat和 ospi_sbl+app.cfg 两个文件的内容。

@Prog-Boot+App.bat 文件:这里需要注意 COM17 根据自己的情况来修改PC端烧录端口。

@echo off

echo+

echo+

echo **********************************************************************

echo Start to Program "QSPI Bootloader" and "App Image" to QSPI Flash......

echo **********************************************************************

echo+

echo+

python uart_uniflash.py -p COM17 --cfg= ospi_sbl+app.cfg

echo+

echo+

echo ******** Finished!!! ********

echo+

echo+

pause

ospi_sbl+app.cfg 文件:这里注意黄色标识部分的路径和文件名。

#-----------------------------------------------------------------------------#

# #

# DEFAULT CONFIGURATION FILE TO BE USED WITH THE FLASHWRITER SCRIPT #

# #

#-----------------------------------------------------------------------------#

#

# By default this config file,

# - points to pre-built flash writer, bootloader for this LP

# - The application image points to relative path of the ipc echo application image for this LP

# - Make sure this application is built before running this script

# - You can customized this config file to point to your own bootloader and/or application images

# - You can use --operation=flashverify if you just want to verify the flash contents and not flash the file.

#

# First point to sbl_uart_uniflash binary, which function's as a server to flash one or more files

--flash-writer=sbl_uart_uniflash.release.tiimage

# Now send one or more files to flash or flashverify as needed. The order of sending files does not matter

# Program the OSPI PHY tuning attack vector

--operation=flash-phy-tuning-data

# When sending bootloader make sure to flash at offset 0x0. ROM expects bootloader at offset 0x0

--file=sbl_ospi.release.tiimage --operation=flash --flash-offset=0x0

# When sending application image, make sure to flash at offset 0x80000 (default) or to whatever offset your bootloader is configured for

--file=../Debug/adc_singleshot_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage --operation=flash --flash-offset=0x80000

# send the XIP image for this application, no need to specify flash offset since flash offset is specified within the image itself

#--file=../Debug/adc_singleshot_am243x-lp_r5fss0-0_freertos_ti-arm-clang.appimage_xip --operation=flash-xip

准备好这些文件后,把AM243x-LP配置为UART boot后上电,双击执行@Prog-Boot+App.bat即可烧录。

pYYBAGQTxfaATboUAACtWPJT7oY390.png

Figure 32 UART Programing Result

5.4 使用UART 启动模式烧录QPSI SBL文件和应用代码Image

烧录完成后,切换AM243x-LP为 QSPI BOOT 模式,用按键SW1 MCU_PORZ复位系统,可以看到串口输出的信息,这里可以看到OSPI Bootloader 的信息和 ADC demo 的信息输出,到此完成了 RBL-SBL-APP 的启动过程。

poYBAGQTxfeAbKgcAACFK1x1xtM098.png

Figure 33 ADC Program Running Result

6. 总 结:

由于此类多核异构MCU的构架与通用MCU的构架差异较大,在启动和调试带来的挑战也是显而易见的。本文以AM243x的芯片构架为切入点,简要的介绍了AM243x的启动流程以及涉及到的SBL相关内容,以ADC demo为例,结合AM243x-LP评估板,完整演示了RBL-SBL-APP 的启动过程,简要介绍了 UART 模式烧录外部OSPI Flash的环境搭建和操作流程,方便用户快速进入AM243x 芯片的应用开发。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电源
    +关注

    关注

    182

    文章

    16630

    浏览量

    245288
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16075

    浏览量

    344310
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10488

    浏览量

    206996
  • 通信总线
    +关注

    关注

    0

    文章

    40

    浏览量

    9794
收藏 人收藏

    评论

    相关推荐

    【Vision Board创客营连载体验】RA8D1-Vision Board上OSPI-Flash实践

    本帖最后由 h1654155872.5480 于 2024-5-13 17:24 编辑 目的:使用RT-Thread Studio测试OSPI板载norFlash的读写,使用FAL 抽象层
    发表于 05-11 16:52

    板载Flash速度很慢

    我发现用如果用提供的spi函数SPI_Flash_Write()向板载flash写一个size4000的字符串数据,5分钟还没有写完,这样正常吗?
    发表于 06-25 04:35

    怎么往板载空的spi nand flash烧录系统固件?

    请问下,针对d1或d1s平台,怎么往板载空的spi nand flash烧录系统固件?找不到相关文档
    发表于 12-28 07:08

    BSP_OSPI_NOR_Erase_Block() 失败怎么解决?

    OCTOSPI1_Init 2 */ BSP_OSPI_NOR_Init_t 闪存; Flash.InterfaceMode = BSP_OSPI
    发表于 12-02 07:20

    可以使用OSPI_RegularCmdTypeDef共享代码函数读取NOR-flash ID和NOR-flash SDFP吗

    的“0x00”序列,因为 NOR 闪存应该发送 0x50444653。有人可以使用简单的 OSPI_RegularCmdTypeDef 共享代码函数来读取 NOR-flash ID 和 NOR-flash SDFP 这样我就可以
    发表于 12-09 08:45

    请问如何使用HAL_OSPI_Receive提高quad SPI接收的速度?

    = HAL_OSPI_OPTYPE_COMMON_CFG;sCommand.FlashId = HAL_OSPI_FLASH_ID_1;sCommand.InstructionMode = HAL_OSPI
    发表于 01-05 08:30

    rt1052 sbl升级固件后硬卡死怎么处理?

    1052核心板,板载的是,25q128jvsq 我的调试步骤:1、用jlink烧写sbl,可以正常运行:2、此时使用MCU Boot Utility将签名的app1烧写到norflash
    发表于 03-30 08:10

    关于使用烧录烧录Nand Flash

    Flash专用烧录编程器;目前为止,有广泛的、优秀的烧录客户群,软件、硬件和算法都是客户批量生产验证过的,非常成熟。
    发表于 03-21 16:26 9688次阅读

    如何进行板载SPI flash烧录

    ,很多人对此有些疑虑,其实只需要TUSB9261和USB口设计正确,。特别是在板子设计调试时,需要直接通过板载的方式直接进行SPI flash 烧录的时候,可以按照下述的步骤来进行。从板卡角度上来看,只需要
    的头像 发表于 01-14 14:43 8725次阅读
    如何进行<b class='flag-5'>板载</b>SPI <b class='flag-5'>flash</b><b class='flag-5'>烧录</b>

    STM32单片机使用SEGGER J-Flash 烧录的方法

    STM32单片机使用SEGGER J-Flash 烧录的方法
    发表于 12-02 10:21 18次下载
    STM32单片机使用SEGGER J-<b class='flag-5'>Flash</b> <b class='flag-5'>烧录</b>的方法

    AM243x-LP快速上手—Booting SBL板载OSPI Flash烧录

    。 在这类多核异构MCU / CPU产品开发中,由于芯片在电源轨上的复杂性以及外设的丰富程度,不可避免的会接触到系统复杂的boot环节,以及多核调试带来的挑战,本文以AM243x-LP评估板为例,对AM243x的booting相关内容进行了初步的介绍…
    的头像 发表于 02-15 13:36 4334次阅读
    AM243x-LP快速上手—<b class='flag-5'>Booting</b> <b class='flag-5'>SBL</b>和<b class='flag-5'>板载</b><b class='flag-5'>OSPI</b> <b class='flag-5'>Flash</b><b class='flag-5'>烧录</b>

    AM243x-LP 快速上手 --- Booting SBL板载 OSPI Flash 烧录

    AM243x-LP 快速上手 --- Booting SBL板载 OSPI Flash 烧录
    发表于 10-28 11:59 3次下载
    AM243x-LP 快速上手 --- <b class='flag-5'>Booting</b> <b class='flag-5'>SBL</b> 和<b class='flag-5'>板载</b> <b class='flag-5'>OSPI</b> <b class='flag-5'>Flash</b> <b class='flag-5'>烧录</b>

    AN017 基于Jlink烧录文件到SPI Nor Flash的方法

    AN017 基于Jlink烧录文件到SPI Nor Flash的方法
    发表于 02-27 18:21 0次下载
    AN017 基于Jlink<b class='flag-5'>烧录</b>文件到SPI Nor <b class='flag-5'>Flash</b>的方法

    使用 E8a Rev. 4.10 对 QzROM / FLASH 进行板载编程

    使用 E8a Rev. 4.10 对 QzROM / FLASH 进行板载编程
    发表于 04-21 19:23 0次下载
    使用 E8a Rev. 4.10 对 QzROM / <b class='flag-5'>FLASH</b> 进行<b class='flag-5'>板载</b>编程

    JTAG在FLASH烧录中的“江湖”

    首先,我们来看看JTAG烧录FLASH的层次结构
    的头像 发表于 10-19 11:35 974次阅读
    JTAG在<b class='flag-5'>FLASH</b><b class='flag-5'>烧录</b>中的“江湖”