华强电子网

电子元器件
采购信息平台

扫码下载
手机洽洽

  • 华强电子网公众号

    电子元器件原材料

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强微电子公众号

    专注电子产业链

    坚持深度原创

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业小灵通

uClinux堆栈

来源:华强电子网 作者:华仔 浏览:683

标签:

摘要: uClinux中无法实现fork()只能用vfork()。父进程在调用vfork()后必须在子进程调用exec()或者exit()前阻塞; uClinux为可执行程序在紧随它的数据段结束处分配堆栈空间。如果堆增长太大,可能覆盖程序的静态数据段和代码段;因此,有时我们自己(计算)需要合寻找一个适的栈大小:设置的栈空间过大则浪费内存;过小则会导致内存溢出。 uClinux中没有自动扩展的栈,也没有br

uClinux中无法实现fork()只能用vfork()。父进程在调用vfork()后必须在子进程调用exec()或者exit()前阻塞; uClinux为可执行程序在紧随它的数据段结束处分配堆栈空间。如果堆增长太大,可能覆盖程序的静态数据段和代码段;因此,有时我们自己(计算)需要合寻找一个适的栈大小:设置的栈空间过大则浪费内存;过小则会导致内存溢出。 uClinux中没有自动扩展的栈,也没有brk()调用。用户必须使用mmap()分配内存空间,也可在程序编译过程中,通过LDFLAGS += -Wl,-elf2flt="131072" 参数来指定使用栈的大小,也可以使用下面命令来调整生产的可执行文件中栈的大小:   #arm-elf-flthdr -s 131072 busybox

 arm-elf-flthdr命令详解:

 arm-elf-flthdr --help
arm-elf-flthdr: invalid option -- -
invalid option
usage: arm-elf-flthdr [options] flat-file
       Allows you to change an existing flat file

       -p      : print current settings
       -z      : compressed flat file
       -d      : compressed data-only flat file
       -Z      : un-compressed flat file
       -r      : ram load
       -R      : do not RAM load
       -k      : kernel traced load (for debug)
       -K      : normal non-kernel traced load
       -s size : stack size
       -o file : output-file
                 (default is to modify input file)



技术资讯 技术方案 技术应用 技术新品 技术前沿 行业资讯 行业方案 行业应用 行业新品 行业前沿
型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67