On Sun, 18 May 2008, carol9078 wrote:
> I'm alsot certainly missing the point, but why dows a simple memory
> read of the JP6 setting address not work and cause a segmntation fault
> and what can I do to fix it, I'm trying to write the smallest possible
> program to go in the initial ramdisk image to read the jumper on
> header 6 and decide which filesystem to boot on my TS7250, using the
> normal includes and statically linking results in a huge file (400K)
> so I thought I would try the inline assembler route:
>
>
> #define JP6 0x22800000
>
> int main(void)
> {
> int ret;
> asm volatile (
> "ldrh %0, [ %1 ]\n"
> : "=r" (ret)
> : "r" (JP6)
> : "memory"
> );
> return ret;
> }
>
>
> ./a.out
> pc : [<000083d8>] lr : [<2aadde44>] Not tainted
> sp : 7ffffe14 ip : 7ffffe28 fp : 7ffffe24
> r10: 2abd9000 r9 : 000083c4 r8 : 00000001
> r7 : 00008440 r6 : 7ffffe34 r5 : 2aac7e14 r4 : 00000000
> r3 : 22800000 r2 : 7ffffe3c r1 : 7ffffe34 r0 : 00000001
> Flags: nZCv IRQs on FIQs on Mode USER_32 Segment user
> Control: C000317F Table: 01770000 DAC: 00000015
> Segmentation fault
>
You cannot access memory direct from userspace like that.
This is an FAQ, obfuscated by your use of assembler.
You need to acces memory io via /dev/mem and mmap()
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|