6844|19

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince6.0 bootloader疑问 [复制链接]

小弟现在手上有块深圳海天雄的6410开发板。最近在学习它的bootloader源码。
在网上看到we-hjb大侠的帖子上说,一般在eboot之前有个nboot,可是海天雄给的源码中好像没有nboot这一块,生成的eboot.bin是264k。
请问大家在nandflash启动的时候,可以不需要nboot吗?
此帖出自WindowsCE论坛

最新回复

目前处于学习阶段! 哈哈 所以研究下别人的源码  详情 回复 发表于 2010-1-14 10:02
点赞 关注
 

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我自己定下!
此帖出自WindowsCE论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
。。。顶下!
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

4
 
首先6410是支持NAND FLASH启动的,其芯片内有BOOT ROM,可以实现NAND FLASH对应总线的初始化,保证系统支持从NAND FLASH直接启动系统。

对于楼主所说的nboot应该是系统整个BOOT里面最最开始的一段boot,楼主可以找下你对应的bsp\FILES目录下,是否有名字类似为nboot.bin的文件,后缀是bin,名字应该类似nboot。

另外生成这个bin文件的源代码一般好像不开源,每次编译生成系统boot时,会利用批处理把这个bin文件进行拷贝复制,和其他的文件一起生成系统的boot文件。

如果楼主想看这个的源代码,首先可以与厂家联系下,实在不行,去三星官网看看。
此帖出自WindowsCE论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 kyzf 的回复:
首先6410是支持NAND FLASH启动的,其芯片内有BOOT ROM,可以实现NAND FLASH对应总线的初始化,保证系统支持从NAND FLASH直接启动系统。

对于楼主所说的nboot应该是系统整个BOOT里面最最开始的一段boot,楼主可以找下你对应的bsp\FILES目录下,是否有名字类似为nboot.bin的文件,后缀是bin,名字应该类似nboot。

另外生成这个bin文件的源代码一般好像不开源,每次编译生成系统boot时,会利用批处理把这个bin文件进行拷贝复制,和其他的文件一起生成系统的boot文件。

如果楼主想看这个的源代码,首先可以与厂家联系下,实在不行,去三星官网看看。


谢谢回复哈!

我已经看到bsp中的bootloader代码了。就是跟网上说的对照起来,好像没nboot这块。所以才来问问大侠们的。是不是可以不需要nboot直接用eboot。
编译成功后只有eboot.bin eboot.nb0!
此帖出自WindowsCE论坛
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

6
 
没有NBOOT是不行的,因为ARM在启动过程只有4K或者8K的stepstone内存供初始化CPU及RAM,然后再将EBOOT读到RAM里边执行。
此帖出自WindowsCE论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

7
 
不行的,要有NBOOT的 NBOOT来启动EBOOT  
此帖出自WindowsCE论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 
我个人估计和PXA3XX处理器一样。

“nboot.bin”文件肯定是存在的,并且在编译生成系统boot时,会自动拷贝过去,和其他文件一起合成系统的BOOT。

另外楼主可以看看这个:
http://www.armce.com/bbs/thread-959-1-1.html

此帖出自WindowsCE论坛
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 kyzf 的回复:
我个人估计和PXA3XX处理器一样。

“nboot.bin”文件肯定是存在的,并且在编译生成系统boot时,会自动拷贝过去,和其他文件一起合成系统的BOOT。

另外楼主可以看看这个:
http://www.armce.com/bbs/thread-959-1-1.html




赞同,PXA3XX处理器的EBOOT 已经集成了NBOOT
此帖出自WindowsCE论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

10
 
LZ的bsp中没有STEPLDR?
此帖出自WindowsCE论坛
 
 
 

回复

64

帖子

0

TA的资源

宇宙尘埃

11
 
引用 9 楼 ljdtj 的回复:
LZ的bsp中没有STEPLDR?


有!!
此帖出自WindowsCE论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 10 楼 aleon_liao 的回复:
引用 9 楼 ljdtj 的回复:
LZ的bsp中没有STEPLDR?


有!!



它就相当于NBOOT.不知道你的BSP中是否有实现STEPLDR.
此帖出自WindowsCE论坛
 
 
 

回复

57

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 9 楼 ljdtj 的回复:
LZ的bsp中没有STEPLDR?


并且这里面的main.c 文件中的main函数是
void main(void)
{
    register nBlock;
    register nPage;
    register nBadBlocks;
    volatile unsigned char *pBuf;

    // Set up copy section (initialized globals).
    //
    // NOTE: after this call, globals become valid.
    //
    SetupCopySection(pTOC);

    // Enable the ICache.
    //System_EnableICache();        // I-Cache was already enabled in startup.s

    // Set up all GPIO ports for LED.
//    Port_Init();
//    Led_Display(0xf);

    // UART Initialize
    Uart_Init();

    Uart_SendString("\r\nWinCE 6.0 Steploader for SMDK6410\r\n");

    // Initialize the NAND flash interface.
    //Uart_SendString("NAND Initialize\n\r");
    g_bLargeBlock = NAND_Init();
  

    // Copy image from NAND flash to RAM.
    pBuf = (unsigned char *)LOAD_ADDRESS_PHYSICAL;
    nBadBlocks = 0;
//    Led_Display(0x4);   
    for (nPage = LOAD_IMAGE_PAGE_OFFSET; nPage < (LOAD_IMAGE_PAGE_OFFSET + LOAD_IMAGE_PAGE_COUNT) ; nPage++)
    {
//        Led_Display(0x1);      
        nBlock = ((nPage / NAND_PAGES_PER_BLOCK) + nBadBlocks);

        if (!NAND_ReadPage(nBlock, (nPage % NAND_PAGES_PER_BLOCK), pBuf))
        {
            if ((nPage % NAND_PAGES_PER_BLOCK) != 0)
            {
//                Led_Display(0x9);    // real ECC Error.
                Uart_SendString("ECC Error.\r\n");

                while(1)
                {
                    // Spin forever...
                }
            }

            // ECC error on a block boundary is (likely) a bad block - retry the page 0 read on the next block.
            nBadBlocks++;
            nPage--;

            continue;
        }

        pBuf += NAND_BYTES_PER_PAGE;
    }

    Uart_SendString("Launch Eboot...\n\r");

    ((PFN_IMAGE_LAUNCH)(LOAD_ADDRESS_PHYSICAL))();
}

跟we-hjb大侠博客上说的nboot内容差不多,请问这stepldr就是传说中的nboot吗?

但为什么编译成功后只有一个eboot.bin和eboot.nb0呢?
要是是放在nandflash中,存放地址是多少呢?
只有eboot.nb0的情况下,还有没有nboot加载eboot这一步呢?
恳请大侠们指点指点!
此帖出自WindowsCE论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

14
 
其实,楼主看看STEPLDR的代码就该明白,所谓的NBOOT作用就是这些了。只不过,可能以前做2410、2440的人对NBOOT的感觉比STEPLDR好吧。
此帖出自WindowsCE论坛
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

15
 
对了,楼主可以看看stepldr里的SOURCE文件里有问问编译后生成文件的定义。应该是可以生成STEPLDR.BIN,STEPLDR.NB0,也有生成STEPLDR.NB1,NB2的。这个就是烧到NANDFLASH的0块。
此帖出自WindowsCE论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

16
 
难道LZ打算做6410的bootloader?
目前好像大家用SDloader的方式比较多,不清楚有没有实现所谓的nboot。
此帖出自WindowsCE论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

17
 
有点懂了!
小弟愚钝啊!
此帖出自WindowsCE论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

18
 
引用 15 楼 ljdtj 的回复:
难道LZ打算做6410的bootloader?
目前好像大家用SDloader的方式比较多,不清楚有没有实现所谓的nboot。


大侠说的是sd卡加载、更新系统吗
此帖出自WindowsCE论坛
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

19
 
是sd卡加载更新。
此帖出自WindowsCE论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

20
 
引用 18 楼 ljdtj 的回复:
是sd卡加载更新。



目前处于学习阶段!
哈哈
所以研究下别人的源码
此帖出自WindowsCE论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表