eboot 死机

luixing67 2010-07-28 11:30:25
Press [ENTER] to download image stored on boot media, or [SPACE] to enter boot monitor.

Initiating image download in 4 seconds.

Ethernet Boot Loader Configuration:

0) IP address: 192.168.1.125
1) Subnet mask: 255.255.255.0
2) DHCP: Disabled
3) Boot delay: 5 seconds
4) Reset to factory default configuration
5) Startup image: DOWNLOAD NEW
6) Clean Boot Option: FALSE
7) Program DM9000A MAC address (22:11:44:33:66:55)
8) KITL Configuration: DISABLED
9) Format Boot Media for BinFS
E) Erase Reserved Block
B) Mark Bad Block at Reserved Block
F) Low-level format the Smart Media card
D) Download image now
S) SD Card Update Image.
L) LAUNCH existing Boot Media image
R) Read Configuration
U) DOWNLOAD image now(USB)
W) Write Configuration Right Now
A) Erase All Blocks

Enter your selection: s
vm_pSDIReg->SDIRSP0=0x80FF8000
In SD ready
End ID
RCA=0x96D7
SD Frequency is 33750000Hz
In stand-by
CMD7 -----vm_pSDIReg->SDIRSP0 is 0x700
CMD55:SDIRSP0=0x920
FAT_Init!
FAT_16!
. . . . . .45677
. . . .

第一次死在这里

Press [ENTER] to download image stored on boot media, or [SPACE] to enter boot monitor.

Initiating image download in 4 seconds.

Ethernet Boot Loader Configuration:

0) IP address: 192.168.1.125
1) Subnet mask: 255.255.255.0
2) DHCP: Disabled
3) Boot delay: 5 seconds
4) Reset to factory default configuration
5) Startup image: DOWNLOAD NEW
6) Clean Boot Option: FALSE
7) Program DM9000A MAC address (22:11:44:33:66:55)
8) KITL Configuration: DISABLED
9) Format Boot Media for BinFS
E) Erase Reserved Block
B) Mark Bad Block at Reserved Block
F) Low-level format the Smart Media card
D) Download image now
S) SD Card Update Image.
L) LAUNCH existing Boot Media image
R) Read Configuration
U) DOWNLOAD image now(USB)
W) Write Configuration Right Now
A) Erase All Blocks

Enter your selection: s
In SD ready
End ID
RCA=0x96D7
SD Frequency is 33750000Hz
In stand-by
CMD7 -----vm_pSDIReg->SDIRSP0 is 0x700
CMD55:SDIRSP0=0x920
FAT_Init!
FAT_16!
. . . . . .45677
. . . . . .45678
. . . . . .45679
第二次死在这里

Press [ENTER] to download image stored on boot media, or [SPACE] to enter boot monitor.

Initiating image download in 4 seconds.

Ethernet Boot Loader Configuration:

0) IP address: 192.168.1.125
1) Subnet mask: 255.255.255.0
2) DHCP: Disabled
3) Boot delay: 5 seconds
4) Reset to factory default configuration
5) Startup image: DOWNLOAD NEW
6) Clean Boot Option: FALSE
7) Program DM9000A MAC address (22:11:44:33:66:55)
8) KITL Configuration: DISABLED
9) Format Boot Media for BinFS
E) Erase Reserved Block
B) Mark Bad Block at Reserved Block
F) Low-level format the Smart Media card
D) Download image now
S) SD Card Update Image.
L) LAUNCH existing Boot Media image
R) Read Configuration
U) DOWNLOAD image now(USB)
W) Write Configuration Right Now
A) Erase All Blocks

Enter your selection: s
In SD ready
End ID
RCA=0x96D7
SD Frequency is 33750000Hz
In stand-by
CMD7 -----vm_pSDIReg->SDIRSP0 is 0x700
CMD55:SDIRSP0=0x920
FAT_Init!
FAT_16!
第三次就死在这里了

ReadBlock+++
ReadBlock---
ReadBlock+++
ReadBlock---
ReadBlock+++
ReadBlock---
ReadBlock+++
ReadBlock---
ReadBlock+++
ReadBlock---
ReadBlock+++
ReadBlock---
ReadBlock+++
ReadBlock---
ReadBlock+++
ReadBlock---
ReadBlock+++
ReadBlock---
. . . . . .65535

Enter LowLevelFormat [0x64, 0x

如果我加了这个
EdbgOutputDebugString("ReadBlock+++\n");
//c-- Check end of DATA
if(!Chk_DATend())
{
EdbgOutputDebugString("Chk_DATend error\n");
return 1;
}
EdbgOutputDebugString("ReadBlock---\n");
则可以读完,但是会死在这里
Enter LowLevelFormat [0x64, 0x
我这个是SD卡升级NK的,这个地方只是输出一个字符串,不应该会死的啊,郁闷,求解
...全文
207 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
luixing67 2010-08-01
  • 打赏
  • 举报
回复
又遇到一个很奇怪的问题,要疯掉了
这是部分LOG
FMD_ReadSector1G08[0x1969]++++++++
FMD_ReadSector1G08[0x196A]:1
FMD_ReadSector1G08[0x196A]:2
FMD_ReadSector1G08[0x196A]:3
FMD_ReadSector1G08[0x196A]:4
FMD_ReadSector1G08[0x196A]:pSectorInfoBuff:0x0
FMD_ReadSector1G08[0x196A]:10
FMD_ReadSector1G08[0x196A]:11
FMD_ReadSector1G08[0x1969]--------

FMD_ReadSector1G08[0x1940]++++++++
FMD_ReadSector1G08[0x196A]:1
FMD_ReadSector1G08[0x196A]:4
FMD_ReadSector1G08[0x196A]:pSectorInfoBuff:0x3000CD08
FMD_ReadSector1G08[0x196A]:5
FMD_ReadSector1G08[0x196A]:6
FMD_ReadSector1G08[0x196A]:7
FMD_ReadSector1G08[0x196A]:8
FMD_ReadSector1G08[0x196A]:9
FMD_ReadSector1G08[0x196A]:10
FMD_ReadSector1G08[0x196A]:11
FMD_ReadSector1G08[0x1940]--------

FMD_ReadSector1G08[0x196A]++++++++
FMD_ReadSector1G08[0x196A]:1
FMD_ReadSector1G08[0x196A]:2
FMD_ReadSector1G08[0x196A]:3
FMD_ReadSector1G08[0x196A]:4
FMD_ReadSector1G08[0x196A]:pSectorInfoBuff:0x0
????????08[0x196A]:10
441414141444????41<Q<Q<Q<Q<1<44?????444?????????????08[0x196A]:10
Q<Q<1<44?????444?????????????08[0x196A]:10
FMD_ReadSector1G08[0x1940]++++++++
FMD_ReadSector1G08[0x196A]:1
FMD_ReadSector1G08[0x196A]:4
FMD_ReadSector1G08[0x196A]:pSectorInfoBuff:0x3000CD08
FMD_ReadSector1G08[0x196A]:5
FMD_ReadSector1G08[0x196A]:6
FMD_ReadSector1G08[0x196A]:7
FMD_ReadSector1G08[0x196A]:8
FMD_ReadSector1G08[0x196A]:9
????????08[0x196A]:10
441414141444????41<Q<Q<Q<Q<1<44?????444?????????????08[0x196A]:10
Q<Q<1<44?????444?????????????08[0x196A]:10
FMD_ReadSector1G08[0x196B]++++++++
FMD_ReadSector1G08[0x196A]:1
FMD_ReadSector1G08[0x196A]:2
羼苎苄馨詯設?默籯矺玨硨超煌豁??蘋蘯虗詯园孕匝苎匝匝苎匝员詯詯詰詯虗虗虘瘫詰瘫瘫瘫瘫瘫瘫虗蘱蘌?柬愁?斢d鬖鬨]鬨鬨鬞鬞鬞訲訲訲覶矻覮矻揕矰扗rDr<r<Q<Q<Q<1<44444?4<4444????????????????????????????????4444444444141414144?????41<Q<Q<Q<Q<Q<4???4??444?????????????????.#???1DsLs\觸4漊統汽逎鱺]?稃孥纥铧铧??<邛鏁?阵?軸錝錝錝鞸礓099?CC##"2軷錝錝錝錜??錹蘇殟珨逭頁?蒡躳虋扙q鋊fyI掙獙籓匝?錿鍞淼淼碚貊貊貊貊踔踔醯鯐鯏韙鞸???????鞸鞸鞸鞸???羼苎苄馨詯設?默籯矺玨硨超煌豁??蘋蘯虗詯

这是代码:
BOOL FMD_ReadSector(SECTOR_ADDR startSectorAddr, LPBYTE pSectorBuff, PSectorInfo pSectorInfoBuff, DWORD dwNumSectors)
{
ULONG SectorAddr = (ULONG)startSectorAddr;
int i,dwBlockID;
UINT32 Delay = 0;
dwBlockID=startSectorAddr>>6;

EdbgOutputDebugString("FMD_ReadSector1G08[0x%x]++++++++\n",startSectorAddr);
NF_RSTECC(); // Initialize ECC.
NF_nFCE_L(); // Select the flash chip.
NF_CLEAR_RB();
NF_CMD(CMD_RESET); // Send reset command.
for(i=0;i<10;i++);
NF_DETECT_RB();

EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:1 \n");

while (dwNumSectors--)
{
ULONG blockPage = SectorAddr;//(((SectorAddr / NAND_PAGE_CNT) * NAND_PAGE_CNT) | (SectorAddr % NAND_PAGE_CNT));

if(pSectorBuff)
{
NF_CLEAR_RB();
NF_CMD(CMD_READ); // Send read command.
NF_ADDR(0); // Column (A[7:0]) = 0
NF_ADDR(0); // A[11:8]
NF_ADDR((blockPage)&0xff); // A[19:12]
NF_ADDR((blockPage>>8)&0xff); // A[27:20]
NF_CLEAR_RB();
NF_CMD(0x30); // 2'nd command
NF_DETECT_RB();


EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:2 \n");

ReadPage2048(pSectorBuff,(PULONG)&s2440NAND->NFDATA); // Read page/sector data.

EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:3 \n");

}
for(i=0;i<0xFFFF;i++);

EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:4 \n");

EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:pSectorInfoBuff:0x%x \n",pSectorInfoBuff);

if(pSectorInfoBuff)
{

EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:5 \n");

if(!pSectorBuff)
{

EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:6 \n");
NF_CLEAR_RB();
NF_CMD(0x00); // Read command
NF_ADDR((2048+0)&0xff); // 2060 = 0x080c
NF_ADDR(((2048+0)>>8)&0xff);
NF_ADDR((blockPage)&0xff); // A[19:12]
NF_ADDR((blockPage>>8)&0xff); // A[27:20]
NF_CLEAR_RB();
NF_CMD(0x30); // 2'nd command
NF_DETECT_RB();
}
// Read the bad block mark

EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:7 \n");

pSectorInfoBuff->bBadBlock = (BYTE) NF_RDDATA();

// Read the SectorInfo data (we only need to read first 8 bytes)
pSectorInfoBuff->dwReserved1 = NF_DATA_R4();

// OEM byte
pSectorInfoBuff->bOEMReserved = (BYTE) NF_RDDATA();


EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:8 \n");

// Second reserved field (WORD)
pSectorInfoBuff->wReserved2 = ((BYTE) NF_RDDATA() << 8);
pSectorInfoBuff->wReserved2 |= ((BYTE) NF_RDDATA());

EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:9 \n");

}
// NF_nFCE_H(); // Deselect the flash chip.

EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:10 \n");

++SectorAddr;
pSectorBuff += NAND_PAGE_SIZE;
}

EdbgOutputDebugString("FMD_ReadSector1G08[0x196A]:11 \n");

NF_nFCE_H(); // Deselect the flash chip.
EdbgOutputDebugString("FMD_ReadSector1G08[0x%x]--------\n",startSectorAddr);
return(TRUE);
}
luixing67 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 veabol 的回复:]
RAM是否稳定?EBOOT对RAM的使用是否合理?比如BIB文件对内存的配置,分配的堆栈大小是多少,有没有在函数中临时创建很大的一段变量等等
[/Quote]
RAM是否稳定?
指硬件吗?应该是稳定的
这是BIB文件
MEMORY
; Name Start Size Type
; ------- -------- -------- ----
PTS 80000000 00020000 RESERVED
ARGS 80020000 00000800 RESERVED
STACK 8002c000 00004000 RESERVED
EBOOT 80038000 00060000 RAMIMAGE
RAM 800A0000 00010000 RAM
BINFS 800B0000 00021000 RESERVED
; Area used to cache nk.bin while programming flash
FLSCACHE 80200000 01400000 RESERVED
DISPLAY 80100000 00100000 RESERVED

CONFIG
COMPRESSION=OFF
PROFILE=OFF
KERNELFIXUPS=ON
SRE=ON
ROMSTART=80038000
ROMWIDTH=32


luixing67 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 nanjianhui 的回复:]
一般EBoot中很少使用中断,但是也见过用的。这种情况如果不是中断造成的,也可能和内存有关,楼主恐怕要跟一下代码了,不知道你的Chk_DATEnd()函数干什么用的,之前之后都执行了什么操作?你的SD卡读写有没问题?是否可以介绍一下你的开发平台,开发板哪来的?你做过什么改动没有?
[/Quote]
Chk_DATEnd是SD读取一个BLOCK后,查询时候读取结束的函数。是用的飞凌的2440开发板,EBOOT是做过改动的,不过改动不大
博说医械研发 2010-07-31
  • 打赏
  • 举报
回复
RAM是否稳定?EBOOT对RAM的使用是否合理?比如BIB文件对内存的配置,分配的堆栈大小是多少,有没有在函数中临时创建很大的一段变量等等
  • 打赏
  • 举报
回复
一般EBoot中很少使用中断,但是也见过用的。这种情况如果不是中断造成的,也可能和内存有关,楼主恐怕要跟一下代码了,不知道你的Chk_DATEnd()函数干什么用的,之前之后都执行了什么操作?你的SD卡读写有没问题?是否可以介绍一下你的开发平台,开发板哪来的?你做过什么改动没有?
  • 打赏
  • 举报
回复
硬件没问题吧?是否更换过其他的SD卡进行测试?有时候打印死机只是表面现象,你在bootloader中是否使用中断了?不知道你的驱动是否稳定,你可以对SD卡做读写测试来排除是否是驱动的问题。
luixing67 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 nanjianhui 的回复:]
硬件没问题吧?是否更换过其他的SD卡进行测试?有时候打印死机只是表面现象,你在bootloader中是否使用中断了?不知道你的驱动是否稳定,你可以对SD卡做读写测试来排除是否是驱动的问题。
[/Quote]

我是在开发板上调的,EBOOT中也用到了网口下载,不知道有没有中断在里面,但是网口没有连,SD卡是没有中断的。由于上面的打印死机的地方时随机的,我很难确定是哪里的问题,纠结
luixing67 2010-07-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jonsenwu 的回复:]
好像是在格式化NAND,要一定的时间,多等会看看
[/Quote]
我这里是在格式化之前 输出的LOG,只输出了一半,就停了,应该还没有开始格式化
jonsenwu 2010-07-29
  • 打赏
  • 举报
回复
好像是在格式化NAND,要一定的时间,多等会看看

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧