当前位置:  技术问答>linux和unix

看bootloader遇到的小问题~请高手帮帮忙~

    来源: 互联网  发布时间:2015-12-22

    本文导语:  我最近看一块嵌入式开发板的bootloader源码,刚看完几个.s,现在刚开始看.c 昨天看cmddebug.c里面遇到一点小问题,怎么也弄不明白 请大家帮我看看哈 谢谢啦 是关于stroul这个函数的,在linux下函数原型为 unsigned long i...

我最近看一块嵌入式开发板的bootloader源码,刚看完几个.s,现在刚开始看.c
昨天看cmddebug.c里面遇到一点小问题,怎么也弄不明白 请大家帮我看看哈 谢谢啦

是关于stroul这个函数的,在linux下函数原型为
unsigned long int strtoul(const char *nptr, char **endptr, int base);

The strtoul() function converts the initial part of the string in nptr 
to an unsigned long integer value according to the given base,
which must be between 2 and 36 inclusive, or be the special value 0. 
If endptr is not NULL, 
strtoul() stores the address of the first invalid character in *endptr. 
If there were no digits at all, 
strtoul() stores the original value of nptr in *endptr (and returns 0). 
In particular, if *nptr is not `' but **endptr is `' on return, the entire string is valid. 
我查到的这段资料说endptr是用来存储第一个无效字符的地址的,就是说将遇到不合条件而终止的nptr中的字符指针由result返回。这样看来存储在endptr中的内容是无效的?

我的问题是:是不是正常请况下返回转换后的长整型数呢?因为如果不这样想很多代码就解释不通

在相关文件里strtoul的定义如下:
bool strtoul(const char *cp, ulong *result, int base){
ulong value, retval;

if (!cp) return false;

// base(柳过)捞 绝阑 锭绰 巩磊凯狼 屈侥栏肺 8, 10, 16柳荐甫 备盒.
if (!base)
{
base = 10;
if (*cp == '0')
{
base = 8;
cp++;
if (*cp == 'x')
{
base = 16;
cp++;
}
}

else //base!=NULL;
{
if (base==8 && *cp=='0') cp++;
if (base==16 && (*cp=='0' && cp[1]=='x')) cp += 2;
}

retval = 0;
while (*cp)
{
if (isxdigit(*cp) && (value = isdigit(*cp) ? *cp-'0' : toupper(*cp)-'A'+10) 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 关于启动时Bootloader载入到Steppingstone的疑问
  • 关于烧录bootloader的问题,急!!!
  • LINUX中BOOTLOADER的问题,急!!!!!!!!!
  • 求一个vivi bootloader
  • 请问如何查看bootloader的nand分区?
  • bootloader 不能启动
  • 编译bootload出错
  • BSP和BOOTLOADER什么区别
  • 请问linux能把bootloader,kernel,fs打包在一起吗
  • bootloader 向kernel传送参数问题
  • bootloader的源代码怎样查看
  • 安装linux出现“Install bootloader"错误怎么办?请高手指点!
  • --------------------- 关于 bootloader 的问题
  • 这段bootloader中的代码读不懂,请帮我看看吧
  • 请问:BootLoader初始化硬件时,会对PLL和时钟初始化,这个PLL是什么啊,怎么初始化它啊?
  • 不要纠结于 bootloader了。
  • bootloader里面的一条代码看不懂
  • 太奇怪了,正在开发bootloader,gcc难道有内置的string的处理函数链接到我的程序中了?我根本没有链接C库啊。
  • bootloader高手请进,急啊!!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3