堆栈的区别linux C,uClinux堆栈

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)

技术资讯 技术方案 技术应用 技术新品 技术前沿 行业资讯 行业方案 行业应用 行业新品 行业前沿

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值