ChinaUnix.net
相关文章推荐:

rodata段中存放什么

目前我们用的CPU比较特殊, DRAM和IRAM是分开存放的, DRAM只有128KB. 而IRAM就没有这样的限制. 我们现在的编译结果, rodata+DATA+BSS已经超过了128KB, 导致总是需要删除一些东西. 请问有什么办法, 我可以把应该放到rodata+DATA+BSS的东西, 比如全局变量, 字符串等等放到TEXT, 这样就不会因为DRAM没有空间发愁了.

by guoyvv - CPU与编译器 - 2011-07-17 11:04:29 阅读(4512) 回复(5)

相关讨论

00008058 : 8058: 470a410a .word 0x470a410a 805c: 66246621 .word 0x66246621 8060: 01414000 .word 0x01414000 8064: 65631442 .word 0x65631442 8068: 40008f62 .word 0x40008f62 806c: 14420147 .word 0x14420147 ... 000080a4 : 80a4: 08000000 .word 0x08000000 80a8: 00300000 .word 0x00300000...

by la_lakers - C/C++ - 2011-12-30 20:03:40 阅读(2224) 回复(0)

gcc version 2.9-010413 (2.96+CP1 MW/GC/LM) ARM/Thumb/StrongARM/XScale 发现没有rodata。 1、是不是arm下的abi如此要求 2、有没有编译选项可以控制 没搞过arm,麻烦大家指点

by refe_zh - C/C++ - 2010-07-12 15:56:12 阅读(2674) 回复(3)

本帖最后由 arm-linux-gcc 于 2013-09-02 21:23 编辑 arm的代码 paging_init时,map_lowmem函数将所有低端内存的页表项设置为MT_MEMORY,这其包括了text所在的那些区域, 那么内核又是在那里将text所在的这些section和page设置为只读的呢?

by arm-linux-gcc - 内核源码 - 2013-09-04 18:53:05 阅读(1984) 回复(3)

本帖最后由 finalfantasy000 于 2013-08-06 11:36 编辑 针对 elf 格式,从汇编角度讲,函数是怎么访问里面的rodata的数据的,例如字符串? 是通过在elf重定位的过程,对栈指针的操作来实现的吗? 相关的寄存器有fp,lp,sp 例如,这个测试用的库,rodata里面有hellowrld字符串,库里面的函数是怎么访问它的呢? libhello.so architecture: arm, flags 0x00000150: HAS_SYMS, DYNAMIC, D_PAGED start address 0x00000000 ...

by finalfantasy000 - CPU与编译器 - 2013-08-06 13:13:54 阅读(2049) 回复(2)

刚开始学习elf, 很多还想不通 比如定义了两个局部变量 char a[] = "abcd"; char b[] = "cdef"; 重定位项a, b均指向.符号表的 .rodata项 , 但我有点不明白是 在符号表 .rodata只有一项,且偏移地址为0,这是如何处理两个符号的重定位的?谢谢

by lyl19 - CPU与编译器 - 2007-12-10 22:21:00 阅读(4904) 回复(2)

链接ld.script文件出现“rodata.str1.4”错误 with arm-linux-gcc 3.4.1 编译器arm-linux- 3.4.1 ld.script文件如下: MEMORY { ram : ORIGIN = 0x20000000, LENGTH = 0xf000 rom : ORIGIN = 0x00000000, LENGTH = 0xf000 } SECTIONS { .text : { _stext = . ; *(.text) *(.rodata) *(.rodata.str1.1) ...

by 白石 - Linux文档专区 - 2007-06-27 11:09:53 阅读(1118) 回复(0)

本帖最后由 lincoln-shaw 于 2011-04-17 09:30 编辑 arm,x86平台上userspace 和 kernelspace更改rodata数据测试结果 arm x86 str = 'x'; segmentfault segmentfault (在usersapce更改rodata数据) read(..str, len); bad address(系统自带driver) bad address(系统自带driver) 没错 ...

by lincoln-shaw - MaxWit & g-bios - 2011-04-17 09:19:48 阅读(2557) 回复(0)