我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1005|回复: 0

uClinux堆栈-ARM

[复制链接]

该用户从未签到

1万

主题

1292

回帖

936

积分

管理员

积分
936

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-7-30 19:07:40 | 显示全部楼层 |阅读模式
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 --helparm-elf-flthdr: invalid option -- -invalid optionusage: 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)
回复

使用道具 举报

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

本版积分规则

论坛开启做任务可以
额外奖励金币快速赚
积分升级了


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

平平安安
TOP
快速回复 返回顶部 返回列表