2836|4

78

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

2410启动时启动参数问题 [复制链接]

typedef struct {
        unsigned char Os_Auto_Flag;
        char boot_params[256];
}EnvParams;
//-------------------------------------------
void memcpy(char *s1, const char *s2, int n)
{
        int i;
        for (i = 0; i < n; i++)
                ((s1)) = ((s2));
}
//--------------------------------------------------------
U32 NFSearchParams(char *pEnv)       
{
        char dat[512];
        U32 addr;
        InitNandFlash();        //读取Nflash的ID,判断是否支持该Nflash,若支持support=1;

        if(support)
        {
                for(addr=SIZE_128K>>9; addr<(SIZE_192K>>9); addr++) //读取Nandflash中从256~384Page(128K~192K)的数据,共128个Page(64KB);该段Nflash存放一些启动参数;SIZE_128K=0x20000,SIZE_192K=0x30000
                {                                                                                                                                        ReadPage(addr, (U8 *)dat);               
                        memcpy(pEnv, dat, sizeof(EnvParams));                       
                        return 0;       
                }
        }
        return -1;       
}

问题:上面是S3C2410的启动代码一部分,
      (1)sizeof(EnvParams)的大小?
      (2)为什么要读64K的数据?
      (3)memcpy(pEnv, dat, sizeof(EnvParams));只copy每512字节的第一个字节给pEnv,而且每次都覆盖(要读取64K),什么意思啊?

最新回复

(1)sizeof(EnvParams)的大小?   这个当然是257了,C语言基本功底 /////////////////////////////////////// ----------这个未必就是257,这个要看编译器的,如果是VC6.0的话就不是,ADS是ARM的开发环境,应该不是257,楼主可以在程序判断一下。 ----------还有啊,现在开发板商都是这样,给个板子,给个下载程序的说明书,然后即使个BSP。就完了,根本不回答问题的。我看楼主的问题 在优龙论坛晾晒有一些日子了,没有人回答啊。  详情 回复 发表于 2008-9-17 15:39
点赞 关注

回复
举报

68

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
优龙的boot里有这个代码,你可以去他们的论坛上问问
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用楼主 provictor 的帖子:
typedef struct {
unsigned char Os_Auto_Flag;
char boot_params[256];
}EnvParams;
//-------------------------------------------
void memcpy(char *s1, const char *s2, int n)
{
int i;
for (i = 0; i < n; i++)
((s1)) = ((s2));
}
//--------------------------------------------------------
U32 NFSearchParams(char *pEnv)
{
char dat[512];
U32 addr;
InitNandFlash(); //读…

这段代码是常用的把一些启动参数存入NAND FLASH中保存,再下次启动时从nand 读取参数的作用。
(1)sizeof(EnvParams)的大小?
   这个当然是257了,C语言基本功底
      (2)为什么要读64K的数据?
       我不知道是不是64K,反正我觉得如果真的是的话,太浪费了
      (3)memcpy(pEnv, dat, sizeof(EnvParams));只copy每512字节的第一个字节给pEnv,而且每次都覆盖(要读取64K),什么意思啊?
      代码的确很混乱,谁写的,站出来!
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
这是优龙FS2410开发板的bootloader的源代码的一部分,从nandflash中启动系统前,先读取一些启动参数。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
(1)sizeof(EnvParams)的大小?
  这个当然是257了,C语言基本功底
///////////////////////////////////////
----------这个未必就是257,这个要看编译器的,如果是VC6.0的话就不是,ADS是ARM的开发环境,应该不是257,楼主可以在程序判断一下。
----------还有啊,现在开发板商都是这样,给个板子,给个下载程序的说明书,然后即使个BSP。就完了,根本不回答问题的。我看楼主的问题
在优龙论坛晾晒有一些日子了,没有人回答啊。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表