Booting dircetly into Redlink FW from flash

Booting dircetly into Redlink FW from flash

Hello,

the usual way to use the Redlink FW is a two-step approach:

  • First the MCU of the probe enumerates as a DFU device.
  • Then the Redlink Server downloads the current Redlink FW into SRAM
    and the probe re-enumerates as a different HID device (VID 0x21BD, PID 0006) which is the probe FW.

This works quite fine, but if your target MCU also boots into USB at the same time the probe boots,
then the host cannot know which device is the probe and which one is the target.

In this scenario it would be desirable to flash the (current) Redlink FW once into the internal flash of the probe MCU and then directly boot from flash.
The probe would then enumerate as the"probe HID" device directly.

Can this be done easily, i.e. is there a Redlink FW that is relocated for start from internal flash?

We plan to deploy quite a lot (40+) of these "hard coded debuggers" for edu purposes in two labs.
The probes are already designed and tested with the LPC4320 (and up) and work fine so far.
AFAIK they could run on some LPC18xx as well. If so, does this require a different Redlink FW?

We just use the JTAG debug interface, no SWD, trace port or other fancy stuff.

Best regards,

Mike

First of all, redlink is designed to run on known NXP debug probe hardware only.

It is only tested on such probes, and we make no guarantees as to its use on other hardware.

Also redlink firmware will only run LPC43xx, there is no LPC18xx variant.

But those points aside, if you hardware had SPIFI flash then you should be able to program the image into that -

the LPC43xx bootloader would download it into RAM on startup).

LPCScrypt could be used to do this.

But there is no redlink firmware build available that could run from internal flash. < run from SRAM always >

Note that you mention LPC4320 - which of course has no internal flash.

If you are using internal flash then the simplest solution might be to try using CMSIS-DAP firmware,

which is designed to programmed and run from flash ......

http://www.lpcware.com/lpclink2-config-tool

Regards,
LPCXpresso Support

Update:

I decided to stick with the Redlink FW, because according to the documentation the CMSIS/DAP version cannot debug the multicore targets.

So I just wrote a "bootloader stub" residing in internal flash

  • which copies the current Redlink FW (stored in internal flash as a BLOB also) to SRAM,
  • sets up VTOR and the SP for SRAM operation and
  • then jump to the "new" reset vector, i.e. starts the FW.

Works fine on a LPC4327.

Our "microboards" now enumerate immediately as "LPCLINK2 redlink" devices

and work as expected with LPCXpresso as JTAG probes.

Thanks for your help and clarification even on a project that is well "out of support scope".

Regards,

Mike

Glad to hear that you now have a solution that works for you.

You should take note though that the redlink firmware provided with one version of LPCXpresso may not work with,

or may not provide support for some features, when used with a future LPCXpresso release.

Thus I would recommend that you update the firmware you have flashed when you update to a new LPCXpresso version.

Also regarding the CMSIS-DAP firmware for LPC-Link2:

you are correct that using this firmware you can currently only connect from LPCXpresso to the M4 core inside the LPC43xx parts.

Allowing connections via CMSIS-DAP to the M0 core(s) is something we do intend to support in a future release LPCXpresso release though.

Regards,
LPCXpresso Support

时间: 2024-09-30 10:38:26

Booting dircetly into Redlink FW from flash的相关文章

web 前端篇:web前端到底是什么?有前途吗 ?

{" web前端开发 "是什么? } {" web前端开发 "有前途吗?}{" web前端开发 "到底怎么学?}这3个对象,是你入[前端]的初恋,对!没错同时和 3个对象谈恋爱. web 前端篇:web前端到底是什么?有前途吗 ?请听:微信jingfeng18分享 NO 1: web前端开发 "是什么? 其实web前端这个职位,并没有一个有效的历史记录可以查询,更没有一个明确的定义,她不像Java 攻城狮.c++开发这种一开始就有明确定

华为USG防火墙基本配置

USG防火墙基本配置 学习目的 掌握登陆USG防火墙的方法 掌握修改防火墙设备名的方法 掌握对防火墙的时间.时区进行修改的方法 掌握修改防火墙登陆标语信息的方法 掌握修改防火墙登陆密码的方法 掌握查看.保存和删除防火墙配置的方法 掌握在防火墙上配置vlan.地址接口.测试基本连通性的方法 拓扑图 学习任务 步骤一.登陆缺省配置的防火墙并修改防火墙的名称 防火墙和路由器一样,有一个Console接口.使用console线缆将console接口和计算机的com口连接在一块.使用windows操作系统

u-boot分析(九)----nand flash初始化|nand flash读写分析

u-boot分析(九) 上篇博文我们按照210的启动流程,分析到了初始化串口,由于接下来的取消存储保护不是很重要,所以我们今天按照u-boot的启动流程对nand flash初始化进行分析. 今天我们会用到的文档: 1.        2440芯片手册:http://download.csdn.net/detail/wrjvszq/8358949 2.        6410芯片手册:http://download.csdn.net/detail/wrjvszq/8358965 3.      

Linux Booting Process: A step by step tutorial for understanding Linux boot sequence

One of the most remarkable achievement in the history of mankind is computers. Another amazing fact about this remarkable achievement called computers is that its a collection of different electronic components, and they work together in coordination

nand flash的实现(摘,参考)

首先明确一下我们的编程步骤. (1).加电在nand_flash加载boot.s中4K以内的程序.这4k将自动拷贝到SRAM(片内RAM)执行. (2).我们需要用这4k的程序实现nand-flash中4K以后的程序的拷贝(当然,拷贝到SDRAM基址为0x30000000处)继续执行(main.o部分的程序).对于SDRAM的初始化和Watchdog的禁用已经在前一个实验中使用到了,这里就不再详细叙述.主要来看一下nand-flash的初始化和使用. 查阅一下s3c2440的空间布局.查看手册图

LPC18xx LPC43xx LPC4370 Bootrom USB DFU FPB - Flash Patch and Breakpoint Unit

What is the difference between a Bootrom vs bootloader on ARM systems Bootrom Bootrom (or Boot ROM) is a small piece of mask ROM or write-protected flash embedded inside the processor chip. It contains the very first code which is executed by the pro

Python实战之Selenium自动化测试web刷新FW

需求:将手工登录,手工刷新服务器的FW转化为Python+Selenium实现自动化操作. 1.创建用户表,实现数据与脚本分离.需要读取模块. 2.自动化刷新FW. 不说话,直接上代码: 1userdata.py #!/usr/bin/env python3 # -*- coding:utf-8 -*- ''' A model that use xlrd to read excel(include user info) ''' import xlrd class XlUserInfo(objec

Flash美术资源

之所以写这个文章,是因为自己在这些年的AS前端开发中,逐渐发现了关于Flash美术的大量的"陷阱"和"流氓资源".当然,AS编写中,也存在类似的事情.但本章值谈论Flash.另外,还有一个原因,很多的小公司的美术都不注意这些问题. 1,关于图片问题 ①:关于as链接: 这玩意,可以将RPG人物的动作及美术的文字加到SWF中进行压缩及加密.然后由AS3进行提取.但是如你的Flash版本是CS6以下.则,AS3是获取不到图片的.要注意. ②:关于纯粹的图片 其实这个东西

移值2016的u-boot-第2篇-支持Nand flash启动

1, 要求:在4K 的代码以内,完成 NOR NAND 类型判断,初始化 NAND 复制自身到 SDRAM ,重定向. 2, 在 /arch/arm/cpu/arm920t/ 文件夹里 添加一个 inic.c 的文件,要在这个文件里面做上面说的事情. 修改 /arch/arm/cpu/arm920t/Makefile 加入 inic.c 的 编译. extra-y = start.o obj-y += init.o obj-y += cpu.o init.c 最后有补丁文件 3, 在 start