redlink server scripting behaviour

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

redlink server scripting behaviour

ソリューションへジャンプ
518件の閲覧回数
calvinj
Contributor I

Hi, I've been trying to investigate an issue I've been having with the i.MX RT1062 flash driver (using NOR flash connected to FLEXSPI1). In the process of doing so, I've been using the redlinkserv.exe program to view contents of flash.

The issue I've been diagnosing is in some conditions (that I've yet to nail down exactly), the RT1062 is incorrectly reading a constant variable from flash (accessing through the AHB bus, rather than through the FLEXSPI API).

Eg I have the variable boot_img_magic, which is eventually stored at address 0x601201d0:

 

static const uint32_t boot_img_magic[] = {
    0xf395c277U,
    0x7fefd260U,
    0x0f505235U,
    0x8079b62cU
};

 

If I use the following bash script to read it out using redlinkserv:

 

#!/bin/bash
{ 
    echo "probelist"; 
    echo "probeopenbyindex 1"; 
    echo "wireswdconnect 1"; 
    echo "MEMDUMP 1 0 0x601201d0 0x10"; 
    echo "exit"; 
} | /mnt/c/nxp/LinkServer_1.4.85/binaries/redlinkserv.exe --commandline
echo ""

 

Then I get the following (incorrect) output

 

redlink>Index = 1
Manufacturer = NXP Semiconductors
Description = MCU-LINK (r0FF) CMSIS-DAP V3.128
Serial Number = DVXJ42221NGTK
VID:PID = 1FC9:0143
Path = 0002:0015:00

redlink>Probe Handle 1 Open
redlink>DpID = 0BD11477
redlink>601201D0:  77  C2  95  F3  60  D2  EF  7F  40  00  00  00  00  00  00  00  

 

However, if I use the following (functionally identical?) .scp script with redlinkserv

 

1 probelist
2 probeopenbyindex 1
3 wireswdconnect 1
5 MEMDUMP 1 0 0x601201d0 0x10
6 exit

 

And execute it with the following command:

/mnt/c/nxp/LinkServer_1.4.85/binaries/redlinkserv.exe --commandline --script memorydump.scp

Then I get the following (expected) output

 

Index = 1
Manufacturer = NXP Semiconductors
Description = MCU-LINK (r0FF) CMSIS-DAP V3.128
Serial Number = DVXJ42221NGTK
VID:PID = 1FC9:0143
Path = 0002:0015:00

Probe Handle 1 Open
DpID = 0BD11477
601201D0:  77  C2  95  F3  60  D2  EF  7F  35  52  50  0F  2C  B6  79  80

 

This behaviour appears consistent, eg if I run the bash script 2x times, then the scp script, and then the bash script, I get the above outputs each time.

As such, I'm wondering what the difference in behaviour for redlinkserv internally is when running manual commands vs executing a scp script, as there must be some initial setup difference to produce this consistent behaviour. Any elaboration upon this would be greatly appreciated, as I've been unable to find any manuals or documentation regarding how redlinkserv.exe functions.

For reference, I'm running Windows 11 / WSL, using LinkServer 1.4.85, and my redlinkserv version is
"MCUXpresso IDE LinkServer v11.9 (Dec 11 2023 18:02:42 - redlinkserv.exe build 2)"

Cheers

0 件の賞賛
返信
1 解決策
477件の閲覧回数
calvinj
Contributor I

For reference, turns out my particular issue was caused by the data cache, as I was able to mark the 0x60000000 region as uncacheable, and everything worked as intended. Still unsure as to why the redlinkserv was returning different results.

元の投稿で解決策を見る

0 件の賞賛
返信
2 返答(返信)
464件の閲覧回数
Sam_Gao
NXP Employee
NXP Employee

Hi @calvinj 

Plz see this link for reference, there are some common question we met before.

 

B.R

Sam

 

 

0 件の賞賛
返信
478件の閲覧回数
calvinj
Contributor I

For reference, turns out my particular issue was caused by the data cache, as I was able to mark the 0x60000000 region as uncacheable, and everything worked as intended. Still unsure as to why the redlinkserv was returning different results.

0 件の賞賛
返信