Hello World on arm926ejs (continued)

10 messages Options
Embed this post
Permalink
Hugues Balp

Hello World on arm926ejs (continued)

Reply Threaded More More options
Print post
Permalink
Thanks for your advices.

I have now downloaded from the OKL4 wiki the binary version of the
arm-unkown-linux-gnueabi crosstool chain and recompiled from scratch
the singlecell example within the binary SDK.

The images are well generated but they don't work better on my host
than the images I have built in parallel with my own crosstool chain...

In both cases a warning exception is raised because no DNS server is found,
which is a little surprising when the test is performed locally.

      "Warning: No DNS servers found"

This problem doesn't seem to be blocking and occurs also in other
qemu use cases contexts as I can when googling a little on the subject...
But perhaps this explain what happens after ? I don't know !

So when I run qemu with the following command:

   qemu-system-arm -s -M versatileab -start-addr 0x07900000 -nographic -kernel
build.micro-debug/images/image.elf

 the warning is printed on stdout and the process enter in an infinite loop
without printing any "Hello World" message...

I've tried to debug with gdb by starting qemu with the '-s' option
and running gdb,
    loading the symbol table of the "hello" program and
    opening a remote target connection to the default local port 1234.
After the connection to the qemu process I typed 'c' to continue the
execution and then stopped to see the stack...
No symbols are readable... Only some ?? and 0x0....
I don't have change the endian-ness ( little by default on PC and ARM ).

What is surprising is to see the entry point address settled to
0x7900000 only in the image.boot and image.sim files and not in the
image.elf nor in the image.elf.nobits files.

Another suprising thing is to see the following message on stderr
when viewing the full symbol list of the elf image thanks to "readelf -a"

...
  2247: 8000fba0     4 OBJECT  GLOBAL DEFAULT    6 hello-_kr_malloc_freep
  2248: 8000fec0     4 OBJECT  GLOBAL DEFAULT    6readelf: Warning: corrupt note
found at offset 0 into core notes
readelf: Warning:  type: 1, namesize: 00000011, descsize: 00000300
 hello-sys_siglist
  2249: 8000fba4     4 OBJECT  GLOBAL DEFAULT    6 hello-__malloc_bss
...

You can also find here attached the elf header so as the system traces
when I run qemu with the image.elf file....( I have splitted the end
because it is a periodic repetition of getimeofday and select calls... ).

Concerning the compilation of qemu, I have tried both with gcc-3.4.6
et gcc-4.2.4. No differences when loading the image....

The compilation process of qemu-system-arm seems to be ok because I
have tried it with another SDK ( namely for the kzm platform
supporting arm1136js processors ) and the hello elf image runs
well for this target. In that case, the readelf -a command doesn't
raise a warning as for the arm629ejs target !

To sum up the hello world is ok on my host for arm1136js but not
 for arm926ejs, and I think something goes wrong with the SDK for
arm926ejs...

Did you have tested the singlecell example after recompilation
from scratch of the crosstool chain and of the SDK-arm926ejs ?

Could you please try the image I have sent to you in the preceding
message to check if you encouter the same troubles with it ?

On the other hand I could try a 'reference' image.elf file the
singlecell example on arm926ejs that you can send to me in order to test if the
problem is due to my system environments or not ( ubuntu hardy and
 gentoo based-systems ).

Best regards,

     Hugues Balp.



------------------------------------------------------------------------

ELF Header:
  Magic:   7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            ARM
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0xf0000000
  Start of program headers:          52 (bytes into file)
  Start of section headers:          378520 (bytes into file)
  Flags:                             0x200, GNU EABI, software FP
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         7
  Size of section headers:           40 (bytes)
  Number of section headers:         24
  Section header string table index: 21

------------------------------------------------------------------------

execve("/opt/okqemu/bin/qemu-system-arm", ["/opt/okqemu/bin/qemu-system-arm", "-M", "versatileab", "-start-addr", "0x07900000", "-nographic", "-kernel", "build.micro-debug/images/image.e"...], [/* 37 vars */]) = 0
uname({sys="Linux", node="TRTP8051", ...}) = 0
brk(0)                                  = 0x8482000
brk(0x8482cb0)                          = 0x8482cb0
set_thread_area({entry_number:-1 -> 6, base_addr:0x8482830, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
set_tid_address(0x8482878)              = 13376
set_robust_list(0x8482880, 0xc)         = 0
futex(0xbfef00c8, 0x81 /* FUTEX_??? */, 1) = 0
rt_sigaction(SIGRTMIN, {0x8199340, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x8199270, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
uname({sys="Linux", node="TRTP8051", ...}) = 0
brk(0x84a3cb0)                          = 0x84a3cb0
brk(0x84a4000)                          = 0x84a4000
rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 717921896}) = 0
rt_sigaction(SIGALRM, {0x8049100, ~[RTMIN RT_1], 0}, NULL, 8) = 0
timer_create(CLOCK_REALTIME, {(nil), SIGALRM, SIGEV_SIGNAL, {...}}, {(nil)}) = 0
rt_sigaction(SIGUSR2, {0x805a7b0, ~[RTMIN RT_1], 0}, NULL, 8) = 0
open("/etc/resolv.conf", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
write(2, "Warning: No DNS servers found\n", 30Warning: No DNS servers found
) = 30
uname({sys="Linux", node="TRTP8051", ...}) = 0
open("/etc/resolv.conf", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
uname({sys="Linux", node="TRTP8051", ...}) = 0
stat64("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
open("/etc/resolv.conf", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
uname({sys="Linux", node="TRTP8051", ...}) = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
open("/etc/nsswitch.conf", O_RDONLY)    = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=513, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "# /etc/nsswitch.conf\n#\n# Example"..., 4096) = 513
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=101035, ...}) = 0
mmap2(NULL, 101035, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f84000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libnss_files.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\30"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=38408, ...}) = 0
mmap2(NULL, 41624, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f79000
mmap2(0xb7f82000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7f82000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260e\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1294572, ...}) = 0
mmap2(NULL, 1300080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e3b000
mmap2(0xb7f73000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x138) = 0xb7f73000
mmap2(0xb7f76000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f76000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/ld-linux.so.2", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\10\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=113248, ...}) = 0
mmap2(NULL, 112232, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e1f000
mmap2(0xb7e39000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a) = 0xb7e39000
close(3)                                = 0
mprotect(0xb7f73000, 4096, PROT_READ)   = 0
munmap(0xb7f84000, 101035)              = 0
open("/etc/host.conf", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "# The \"order\" line is only used "..., 4096) = 92
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
futex(0x828c440, 0x81 /* FUTEX_??? */, 2147483647) = 0
mmap2(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d1f000
open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 3
fcntl64(3, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)
fstat64(3, {st_mode=S_IFREG|0644, st_size=334, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "127.0.0.1\tlocalhost\n#192.168.1.1"..., 4096) = 334
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
mmap2(NULL, 134225920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xafd1d000
mmap2(NULL, 33554432, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xadd1d000
mprotect(0x8475000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mmap2(NULL, 18878464, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacb1c000
mmap2(NULL, 139264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacafa000
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
fcntl64(0, F_GETFL)                     = 0x2 (flags O_RDWR)
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 opost -isig -icanon -echo ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost -isig -icanon -echo ...}) = 0
fcntl64(0, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
brk(0)                                  = 0x84a4000
brk(0x84c5000)                          = 0x84c5000
brk(0)                                  = 0x84c5000
brk(0x84e7000)                          = 0x84e7000
brk(0)                                  = 0x84e7000
brk(0x8509000)                          = 0x8509000
brk(0)                                  = 0x8509000
brk(0x852b000)                          = 0x852b000
brk(0)                                  = 0x852b000
brk(0x854d000)                          = 0x854d000
brk(0)                                  = 0x854d000
brk(0x856f000)                          = 0x856f000
brk(0)                                  = 0x856f000
brk(0x8591000)                          = 0x8591000
brk(0)                                  = 0x8591000
brk(0x85b3000)                          = 0x85b3000
brk(0)                                  = 0x85b3000
brk(0x85d5000)                          = 0x85d5000
brk(0)                                  = 0x85d5000
brk(0x85f7000)                          = 0x85f7000
time(NULL)                              = 1226572445
open("/etc/localtime", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacaf9000
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\0\0\f\0\0"..., 4096) = 2945
_llseek(3, -28, [2917], SEEK_CUR)       = 0
read(3, "\nCET-1CEST,M3.5.0,M10.5.0/3\n", 4096) = 28
close(3)                                = 0
munmap(0xacaf9000, 4096)                = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
open("build.micro-debug/images/image.elf", O_RDONLY|O_LARGEFILE) = 3
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0", 16) = 16
_llseek(3, 0, [0], SEEK_SET)            = 0
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\2\0(\0\1\0\0\0\0\0\0\360"..., 52) = 52
_llseek(3, 378520, [378520], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 342405, [342405], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\0\360\0\0\0"..., 36112) = 36112
_llseek(3, 303104, [303104], SEEK_SET)  = 0
brk(0)                                  = 0x85f7000
brk(0x861d000)                          = 0x861d000
read(3, "\0$a\0$d\0_Z19finish_sys_schedulev\0"..., 38197) = 38197
_llseek(3, 52, [52], SEEK_SET)          = 0
read(3, "\1\0\0\0\0\200\0\0\0\0\0\360\0\0\220\7,w\2\0,w\2\0\5\0"..., 224) = 224
mmap2(NULL, 163840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacad2000
_llseek(3, 32768, [32768], SEEK_SET)    = 0
read(3, "\323\360)\343x\0\240\343\20\17\1\356~\377\27\356\375\377"..., 161580) = 161580
munmap(0xacad2000, 163840)              = 0
_llseek(3, 196608, [196608], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 7120) = 7120
_llseek(3, 229376, [229376], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 24576) = 24576
_llseek(3, 262144, [262144], SEEK_SET)  = 0
read(3, "\34\0\237\345\0\0\220\345D\0\220\345\26\0\0\352\4\0\235"..., 31276) = 31276
_llseek(3, 293436, [293436], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0,y\0\200\\\373\0\200\0\0\0\0\360"..., 344) = 344
_llseek(3, 294912, [294912], SEEK_SET)  = 0
read(3, "\33\0\244\262\204\10\1\200\334\0\1\200\214\10\1\200\340"..., 2592) = 2592
_llseek(3, 299008, [299008], SEEK_SET)  = 0
read(3, "(\1\25\6\1\0\0\0\2\0\1\0\0\4 \4\3\0\2\0\0\1\0\1\0\1\0\0"..., 4096) = 4096
close(3)                                = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 758189225}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 758255228}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 250000}}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, xd{8268, 758471539}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 758534260}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 65330}}) = 0
--- SIGALRM (Alarm clock) @ 0 (0) ---
sigreturn()                             = ? (mask now [])
select(1, [0], [], [], {0, 0})          = 0 (Timeout)
gettimeofday({1226572445, 40366}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 759678186}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 759815013}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 759925997}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 760070646}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 29000000}}, NULL) = 0
--- SIGALRM (Alarm clock) @ 0 (0) ---
sigreturn()                             = ? (mask now [])
select(1, [0], [], [], {0, 0})          = 0 (Timeout)
gettimeofday({1226572445, 70676}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 789870126}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 789934454}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 790031608}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 790099288}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 30000000}}, NULL) = 0
--- SIGALRM (Alarm clock) @ 0 (0) ---
sigreturn()                             = ? (mask now [])
etc...
--- SIGTERM (Terminated) @ 0 (0) ---
+++ killed by SIGTERM +++

Process 13376 detached


_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer
Peter Howard

Re: Hello World on arm926ejs (continued)

Reply Threaded More More options
Print post
Permalink
Hugues,

Checking round here, the SDK for the versatile is not set up, in the
_debug_ kernel, for use with qemu.  It (the debug kernel) is configured
for use on the hardware (with JTAG).  This needs to be made clear on the
wiki.

To get the example going, you should use the make line

make BUILD=production

and then change the qemu line to refer to
build.micro-production/images/image.elf (or image.sim)

That should allow you to see the examples running.  Going back to your
original email(s) I understand your intended target _is_ versatile.  If
you want to contact me off-list we can go through in more detail how to
build either from the source or re-build the SDK to have it set up as
you want.

One other thing.  We haven't seen the readelf errors that you are seeing
(running on the image you provided).  I suggest you try the
arm-unknown-linux-gnueabi-readelf in the toolchain.


On Fri, 2008-11-14 at 11:15 +0100, Hugues Balp wrote:

> Thanks for your advices.
>
> I have now downloaded from the OKL4 wiki the binary version of the
> arm-unkown-linux-gnueabi crosstool chain and recompiled from scratch
> the singlecell example within the binary SDK.
>
> The images are well generated but they don't work better on my host
> than the images I have built in parallel with my own crosstool chain...
>
> In both cases a warning exception is raised because no DNS server is found,
> which is a little surprising when the test is performed locally.
>
>       "Warning: No DNS servers found"
>
> This problem doesn't seem to be blocking and occurs also in other
> qemu use cases contexts as I can when googling a little on the subject...
> But perhaps this explain what happens after ? I don't know !
>
> So when I run qemu with the following command:
>
>    qemu-system-arm -s -M versatileab -start-addr 0x07900000 -nographic -kernel
> build.micro-debug/images/image.elf
>
>  the warning is printed on stdout and the process enter in an infinite loop
> without printing any "Hello World" message...
>
> I've tried to debug with gdb by starting qemu with the '-s' option
> and running gdb,
>     loading the symbol table of the "hello" program and
>     opening a remote target connection to the default local port 1234.
> After the connection to the qemu process I typed 'c' to continue the
> execution and then stopped to see the stack...
> No symbols are readable... Only some ?? and 0x0....
> I don't have change the endian-ness ( little by default on PC and ARM ).
>
> What is surprising is to see the entry point address settled to
> 0x7900000 only in the image.boot and image.sim files and not in the
> image.elf nor in the image.elf.nobits files.
>
> Another suprising thing is to see the following message on stderr
> when viewing the full symbol list of the elf image thanks to "readelf -a"
>
> ...
>   2247: 8000fba0     4 OBJECT  GLOBAL DEFAULT    6 hello-_kr_malloc_freep
>   2248: 8000fec0     4 OBJECT  GLOBAL DEFAULT    6readelf: Warning: corrupt note
> found at offset 0 into core notes
> readelf: Warning:  type: 1, namesize: 00000011, descsize: 00000300
>  hello-sys_siglist
>   2249: 8000fba4     4 OBJECT  GLOBAL DEFAULT    6 hello-__malloc_bss
> ...
>
> You can also find here attached the elf header so as the system traces
> when I run qemu with the image.elf file....( I have splitted the end
> because it is a periodic repetition of getimeofday and select calls... ).
>
> Concerning the compilation of qemu, I have tried both with gcc-3.4.6
> et gcc-4.2.4. No differences when loading the image....
>
> The compilation process of qemu-system-arm seems to be ok because I
> have tried it with another SDK ( namely for the kzm platform
> supporting arm1136js processors ) and the hello elf image runs
> well for this target. In that case, the readelf -a command doesn't
> raise a warning as for the arm629ejs target !
>
> To sum up the hello world is ok on my host for arm1136js but not
>  for arm926ejs, and I think something goes wrong with the SDK for
> arm926ejs...
>
> Did you have tested the singlecell example after recompilation
> from scratch of the crosstool chain and of the SDK-arm926ejs ?
>
> Could you please try the image I have sent to you in the preceding
> message to check if you encouter the same troubles with it ?
>
> On the other hand I could try a 'reference' image.elf file the
> singlecell example on arm926ejs that you can send to me in order to test if the
> problem is due to my system environments or not ( ubuntu hardy and
>  gentoo based-systems ).
>
> Best regards,
>
>      Hugues Balp.
>
>
>
> ------------------------------------------------------------------------
>
> ELF Header:
>   Magic:   7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
>   Class:                             ELF32
>   Data:                              2's complement, little endian
>   Version:                           1 (current)
>   OS/ABI:                            ARM
>   ABI Version:                       0
>   Type:                              EXEC (Executable file)
>   Machine:                           ARM
>   Version:                           0x1
>   Entry point address:               0xf0000000
>   Start of program headers:          52 (bytes into file)
>   Start of section headers:          378520 (bytes into file)
>   Flags:                             0x200, GNU EABI, software FP
>   Size of this header:               52 (bytes)
>   Size of program headers:           32 (bytes)
>   Number of program headers:         7
>   Size of section headers:           40 (bytes)
>   Number of section headers:         24
>   Section header string table index: 21
>
> ------------------------------------------------------------------------
>
> execve("/opt/okqemu/bin/qemu-system-arm", ["/opt/okqemu/bin/qemu-system-arm", "-M", "versatileab", "-start-addr", "0x07900000", "-nographic", "-kernel", "build.micro-debug/images/image.e"...], [/* 37 vars */]) = 0
> uname({sys="Linux", node="TRTP8051", ...}) = 0
> brk(0)                                  = 0x8482000
> brk(0x8482cb0)                          = 0x8482cb0
> set_thread_area({entry_number:-1 -> 6, base_addr:0x8482830, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
> set_tid_address(0x8482878)              = 13376
> set_robust_list(0x8482880, 0xc)         = 0
> futex(0xbfef00c8, 0x81 /* FUTEX_??? */, 1) = 0
> rt_sigaction(SIGRTMIN, {0x8199340, [], SA_SIGINFO}, NULL, 8) = 0
> rt_sigaction(SIGRT_1, {0x8199270, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
> rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
> getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
> uname({sys="Linux", node="TRTP8051", ...}) = 0
> brk(0x84a3cb0)                          = 0x84a3cb0
> brk(0x84a4000)                          = 0x84a4000
> rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 717921896}) = 0
> rt_sigaction(SIGALRM, {0x8049100, ~[RTMIN RT_1], 0}, NULL, 8) = 0
> timer_create(CLOCK_REALTIME, {(nil), SIGALRM, SIGEV_SIGNAL, {...}}, {(nil)}) = 0
> rt_sigaction(SIGUSR2, {0x805a7b0, ~[RTMIN RT_1], 0}, NULL, 8) = 0
> open("/etc/resolv.conf", O_RDONLY|O_LARGEFILE) = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
> read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
> read(3, "", 4096)                       = 0
> close(3)                                = 0
> munmap(0xb7f9c000, 4096)                = 0
> write(2, "Warning: No DNS servers found\n", 30Warning: No DNS servers found
> ) = 30
> uname({sys="Linux", node="TRTP8051", ...}) = 0
> open("/etc/resolv.conf", O_RDONLY)      = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
> read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
> read(3, "", 4096)                       = 0
> close(3)                                = 0
> munmap(0xb7f9c000, 4096)                = 0
> uname({sys="Linux", node="TRTP8051", ...}) = 0
> stat64("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
> open("/etc/resolv.conf", O_RDONLY)      = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
> read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
> read(3, "", 4096)                       = 0
> close(3)                                = 0
> munmap(0xb7f9c000, 4096)                = 0
> uname({sys="Linux", node="TRTP8051", ...}) = 0
> socket(PF_FILE, SOCK_STREAM, 0)         = 3
> fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
> connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
> close(3)                                = 0
> socket(PF_FILE, SOCK_STREAM, 0)         = 3
> fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
> connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
> close(3)                                = 0
> open("/etc/nsswitch.conf", O_RDONLY)    = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=513, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
> read(3, "# /etc/nsswitch.conf\n#\n# Example"..., 4096) = 513
> read(3, "", 4096)                       = 0
> close(3)                                = 0
> munmap(0xb7f9c000, 4096)                = 0
> open("/etc/ld.so.cache", O_RDONLY)      = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=101035, ...}) = 0
> mmap2(NULL, 101035, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f84000
> close(3)                                = 0
> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
> open("/lib/libnss_files.so.2", O_RDONLY) = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\30"..., 512) = 512
> fstat64(3, {st_mode=S_IFREG|0644, st_size=38408, ...}) = 0
> mmap2(NULL, 41624, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f79000
> mmap2(0xb7f82000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7f82000
> close(3)                                = 0
> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
> open("/lib/libc.so.6", O_RDONLY)        = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260e\1"..., 512) = 512
> fstat64(3, {st_mode=S_IFREG|0755, st_size=1294572, ...}) = 0
> mmap2(NULL, 1300080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e3b000
> mmap2(0xb7f73000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x138) = 0xb7f73000
> mmap2(0xb7f76000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f76000
> close(3)                                = 0
> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
> open("/lib/ld-linux.so.2", O_RDONLY)    = 3
> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\10\0"..., 512) = 512
> fstat64(3, {st_mode=S_IFREG|0755, st_size=113248, ...}) = 0
> mmap2(NULL, 112232, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e1f000
> mmap2(0xb7e39000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a) = 0xb7e39000
> close(3)                                = 0
> mprotect(0xb7f73000, 4096, PROT_READ)   = 0
> munmap(0xb7f84000, 101035)              = 0
> open("/etc/host.conf", O_RDONLY)        = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
> read(3, "# The \"order\" line is only used "..., 4096) = 92
> read(3, "", 4096)                       = 0
> close(3)                                = 0
> munmap(0xb7f9c000, 4096)                = 0
> futex(0x828c440, 0x81 /* FUTEX_??? */, 2147483647) = 0
> mmap2(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d1f000
> open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 3
> fcntl64(3, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)
> fstat64(3, {st_mode=S_IFREG|0644, st_size=334, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
> read(3, "127.0.0.1\tlocalhost\n#192.168.1.1"..., 4096) = 334
> close(3)                                = 0
> munmap(0xb7f9c000, 4096)                = 0
> mmap2(NULL, 134225920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xafd1d000
> mmap2(NULL, 33554432, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xadd1d000
> mprotect(0x8475000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
> mmap2(NULL, 18878464, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacb1c000
> mmap2(NULL, 139264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacafa000
> ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
> fcntl64(0, F_GETFL)                     = 0x2 (flags O_RDWR)
> ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
> ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 opost -isig -icanon -echo ...}) = 0
> ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost -isig -icanon -echo ...}) = 0
> fcntl64(0, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
> brk(0)                                  = 0x84a4000
> brk(0x84c5000)                          = 0x84c5000
> brk(0)                                  = 0x84c5000
> brk(0x84e7000)                          = 0x84e7000
> brk(0)                                  = 0x84e7000
> brk(0x8509000)                          = 0x8509000
> brk(0)                                  = 0x8509000
> brk(0x852b000)                          = 0x852b000
> brk(0)                                  = 0x852b000
> brk(0x854d000)                          = 0x854d000
> brk(0)                                  = 0x854d000
> brk(0x856f000)                          = 0x856f000
> brk(0)                                  = 0x856f000
> brk(0x8591000)                          = 0x8591000
> brk(0)                                  = 0x8591000
> brk(0x85b3000)                          = 0x85b3000
> brk(0)                                  = 0x85b3000
> brk(0x85d5000)                          = 0x85d5000
> brk(0)                                  = 0x85d5000
> brk(0x85f7000)                          = 0x85f7000
> time(NULL)                              = 1226572445
> open("/etc/localtime", O_RDONLY)        = 3
> fstat64(3, {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacaf9000
> read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\0\0\f\0\0"..., 4096) = 2945
> _llseek(3, -28, [2917], SEEK_CUR)       = 0
> read(3, "\nCET-1CEST,M3.5.0,M10.5.0/3\n", 4096) = 28
> close(3)                                = 0
> munmap(0xacaf9000, 4096)                = 0
> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
> open("build.micro-debug/images/image.elf", O_RDONLY|O_LARGEFILE) = 3
> read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0", 16) = 16
> _llseek(3, 0, [0], SEEK_SET)            = 0
> read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\2\0(\0\1\0\0\0\0\0\0\360"..., 52) = 52
> _llseek(3, 378520, [378520], SEEK_SET)  = 0
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
> _llseek(3, 342405, [342405], SEEK_SET)  = 0
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\0\360\0\0\0"..., 36112) = 36112
> _llseek(3, 303104, [303104], SEEK_SET)  = 0
> brk(0)                                  = 0x85f7000
> brk(0x861d000)                          = 0x861d000
> read(3, "\0$a\0$d\0_Z19finish_sys_schedulev\0"..., 38197) = 38197
> _llseek(3, 52, [52], SEEK_SET)          = 0
> read(3, "\1\0\0\0\0\200\0\0\0\0\0\360\0\0\220\7,w\2\0,w\2\0\5\0"..., 224) = 224
> mmap2(NULL, 163840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacad2000
> _llseek(3, 32768, [32768], SEEK_SET)    = 0
> read(3, "\323\360)\343x\0\240\343\20\17\1\356~\377\27\356\375\377"..., 161580) = 161580
> munmap(0xacad2000, 163840)              = 0
> _llseek(3, 196608, [196608], SEEK_SET)  = 0
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 7120) = 7120
> _llseek(3, 229376, [229376], SEEK_SET)  = 0
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 24576) = 24576
> _llseek(3, 262144, [262144], SEEK_SET)  = 0
> read(3, "\34\0\237\345\0\0\220\345D\0\220\345\26\0\0\352\4\0\235"..., 31276) = 31276
> _llseek(3, 293436, [293436], SEEK_SET)  = 0
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0,y\0\200\\\373\0\200\0\0\0\0\360"..., 344) = 344
> _llseek(3, 294912, [294912], SEEK_SET)  = 0
> read(3, "\33\0\244\262\204\10\1\200\334\0\1\200\214\10\1\200\340"..., 2592) = 2592
> _llseek(3, 299008, [299008], SEEK_SET)  = 0
> read(3, "(\1\25\6\1\0\0\0\2\0\1\0\0\4 \4\3\0\2\0\0\1\0\1\0\1\0\0"..., 4096) = 4096
> close(3)                                = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 758189225}) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 758255228}) = 0
> timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
> timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 250000}}, NULL) = 0
> clock_gettime(CLOCK_MONOTONIC, xd{8268, 758471539}) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 758534260}) = 0
> timer_gettime(0, {it_interval={0, 0}, it_value={0, 65330}}) = 0
> --- SIGALRM (Alarm clock) @ 0 (0) ---
> sigreturn()                             = ? (mask now [])
> select(1, [0], [], [], {0, 0})          = 0 (Timeout)
> gettimeofday({1226572445, 40366}, NULL) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 759678186}) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 759815013}) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 759925997}) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 760070646}) = 0
> timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
> timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 29000000}}, NULL) = 0
> --- SIGALRM (Alarm clock) @ 0 (0) ---
> sigreturn()                             = ? (mask now [])
> select(1, [0], [], [], {0, 0})          = 0 (Timeout)
> gettimeofday({1226572445, 70676}, NULL) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 789870126}) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 789934454}) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 790031608}) = 0
> clock_gettime(CLOCK_MONOTONIC, {8268, 790099288}) = 0
> timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
> timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 30000000}}, NULL) = 0
> --- SIGALRM (Alarm clock) @ 0 (0) ---
> sigreturn()                             = ? (mask now [])
> etc...
> --- SIGTERM (Terminated) @ 0 (0) ---
> +++ killed by SIGTERM +++
>
> Process 13376 detached
>
>
> _______________________________________________
> Developer mailing list
> [hidden email]
> https://lists.okl4.org/mailman/listinfo/developer
>
--
Peter Howard <[hidden email]>


_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer
Hugues Balp

Re: Hello World on arm926ejs (continued) and some questions on temporal partitioning and on POSIX.

Reply Threaded More More options
Print post
Permalink
Peter Howard wrote:

> Hugues,
>
> Checking round here, the SDK for the versatile is not set up, in the
> _debug_ kernel, for use with qemu.  It (the debug kernel) is configured
> for use on the hardware (with JTAG).  This needs to be made clear on the
> wiki.
>
> To get the example going, you should use the make line
>
> make BUILD=production
>
> and then change the qemu line to refer to
> build.micro-production/images/image.elf (or image.sim)
>  
Ok, it's ok with the production build, except it is less suited for
debugging.
> That should allow you to see the examples running.  Going back to your
> original email(s) I understand your intended target _is_ versatile.  If
> you want to contact me off-list we can go through in more detail how to
> build either from the source or re-build the SDK to have it set up as
> you want.
>
>  
Yes, I think I will have to rebuild the SDK with the qemu set up.
The objective would be to enable debugging on the host with gdb and qemu.
Can I try to compile from the kernel sources ?
Is there some tricky things to do for that purpose ?
I imagine the main build scripts are already present.

>  
> One other thing.  We haven't seen the readelf errors that you are seeing
> (running on the image you provided).  I suggest you try the
> arm-unknown-linux-gnueabi-readelf in the toolchain.
>  
I have tried with arm-unknown-linux-gnueabi-readelf and get the same
kind of warning
both on the image.elf available for JTAG and on the one for qemu...

Notes at offset 0x00033b08 with length 0x0000031e:
Owner Data size Description
readelf: Warning: corrupt note found at offset 0 into core notes
readelf: Warning: type: 1, namesize: 00000011, descsize: 00000300

So I think it's not really blocking...

Now after having tried the Hello World example successfully,
I wonder if its possible to configure precisely the temporal
scheduling of a multi-cells system.

So I had a look at the multicell example and didn't see any configuration
value related to time slices in the declarations of the cells...
I that possible to add such kind of temporal constraints ?
exemple: to force the chatterbox to be scheduled during the first
demi-period
and the echo during the second...
Perhaps you have some other examples more focused on temporal partitioning ?

Another quetion I asked me is to know how it is possible to respect a
strict temporal
partitioning while having a synchronous communication mechanism between two
different partitions.
In other words, synchronisation without buffering implies some kind of
"context switching"
from one address space to the other each time an OKL4 IPC call occurs...
How is it possible to respect a fixed temporal partitioning with that
kind of communication
mechanism ( for example to force execution of adress space 1 the first
milliseconds and of the address
space 2 after etc... ) ?

Here is an extract of a presentation of OKL4 from Gernot Heiser

Message-passing in OKL4 is always synchronous (rendez-vous)
• Message gets transferred when sender and receiver are both ready
• The party attempting the operation first blocks until the other is ready
 Implications:
• Implicit synchronisation
• No buffering of data in the kernel
• Data copied at most once

I have another general question on the relationships between the OKL4
API and POSIX...
Is it possible to have some kind of "adaptation layer" between POSIX and
OKL4 in order
to enable a POSIX source code to run on top of an OKL4 address space ?

Another question deals with the support of linux-based drivers...
Do we need to install an OKLinux OS inside an address space to be able
to use a
linux-based driver... In that case how can we share the driver between
different adress spaces ?

Thanks in advance for your answers,

Best regards,

Hugues Balp.

>
> On Fri, 2008-11-14 at 11:15 +0100, Hugues Balp wrote:
>  

_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer
Peter Howard

Re: Hello World on arm926ejs (continued) and some questions on temporal partitioning and on POSIX.

Reply Threaded More More options
Print post
Permalink

On Tue, 2008-11-18 at 12:33 +0100, Hugues Balp wrote:

> Peter Howard wrote:
> > Hugues,
> >
> > Checking round here, the SDK for the versatile is not set up, in the
> > _debug_ kernel, for use with qemu.  It (the debug kernel) is configured
> > for use on the hardware (with JTAG).  This needs to be made clear on the
> > wiki.
> >
> > To get the example going, you should use the make line
> >
> > make BUILD=production
> >
> > and then change the qemu line to refer to
> > build.micro-production/images/image.elf (or image.sim)
> >  
> Ok, it's ok with the production build, except it is less suited for
> debugging.
> > That should allow you to see the examples running.  Going back to your
> > original email(s) I understand your intended target _is_ versatile.  If
> > you want to contact me off-list we can go through in more detail how to
> > build either from the source or re-build the SDK to have it set up as
> > you want.
> >
> >  
> Yes, I think I will have to rebuild the SDK with the qemu set up.
> The objective would be to enable debugging on the host with gdb and qemu.
> Can I try to compile from the kernel sources ?
> Is there some tricky things to do for that purpose ?
> I imagine the main build scripts are already present.

Sorry for the delay.  To build the SDK from the full source release so
you can run the debug kernel in quemu, the invocation is:

tools/build.py machine=versatile_uboot project=sdk kdb_serial=True

the sdk tarball will be in build/SDK/object/sdk/

--
Peter Howard <[hidden email]>


_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer
Hugues Balp

Re: Hello World on arm926ejs (continued) and some questions on temporal partitioning and on POSIX.

Reply Threaded More More options
Print post
Permalink

    Thank you Peter for your answer,

I have tried to compile the OKL4_3.0 archive with the command line you
gave to me
and got the following error:

Executing: licence_tool --type=sdk --mode=expand
/home/hugues/tools/okl4/okl4_3.0/build/SDK/object/sdk/sdk/okl4
sh: licence_tool: not found
scons: *** licence_tool returned error, perhaps it's not installed?

So I suppose I have to install some kind of license tool and don't know
how and
what are the underlying conditions...

Thanks in advance,

                Hugues.


Peter Howard wrote:

> On Tue, 2008-11-18 at 12:33 +0100, Hugues Balp wrote:
>  
>> Peter Howard wrote:
>>    
>>> Hugues,
>>>
>>> Checking round here, the SDK for the versatile is not set up, in the
>>> _debug_ kernel, for use with qemu.  It (the debug kernel) is configured
>>> for use on the hardware (with JTAG).  This needs to be made clear on the
>>> wiki.
>>>
>>> To get the example going, you should use the make line
>>>
>>> make BUILD=production
>>>
>>> and then change the qemu line to refer to
>>> build.micro-production/images/image.elf (or image.sim)
>>>  
>>>      
>> Ok, it's ok with the production build, except it is less suited for
>> debugging.
>>    
>>> That should allow you to see the examples running.  Going back to your
>>> original email(s) I understand your intended target _is_ versatile.  If
>>> you want to contact me off-list we can go through in more detail how to
>>> build either from the source or re-build the SDK to have it set up as
>>> you want.
>>>
>>>  
>>>      
>> Yes, I think I will have to rebuild the SDK with the qemu set up.
>> The objective would be to enable debugging on the host with gdb and qemu.
>> Can I try to compile from the kernel sources ?
>> Is there some tricky things to do for that purpose ?
>> I imagine the main build scripts are already present.
>>    
>
> Sorry for the delay.  To build the SDK from the full source release so
> you can run the debug kernel in quemu, the invocation is:
>
> tools/build.py machine=versatile_uboot project=sdk kdb_serial=True
>
> the sdk tarball will be in build/SDK/object/sdk/
>
>  


_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer
Hugues Balp

temporal partitioning

Reply Threaded More More options
Print post
Permalink
In reply to this post by Peter Howard

           Hi all,

    is it possible with OKL4 to respect a fixed temporal partitioning
like in ARINC 653 ?

    For example with the GreenHills Integrity operating system we can
plannify a strict scheduling for our application by a file descriptor to
allocate each time slice to a specific partition, as the one joined to
this mail...

    Would it be possible to imagine the same kind of example running on
top of OKL4 ?

Regards,

          Hugues.


Kernel
        Filename pschedkernel
        Schedule
                MajorFramePeriod 1.0
                BackgroundMaxPriority 3
        EndSchedule
EndKernel

# execution units of 0.1
# pschedv1 == P1
# pschedv2 == P2
# pschedv3 == P3
#  -P1- **** -P2-----  **** -P1- **** -P3------ ****
# 0    1    2    3    4    5    6    7    8    9    10
#

AddressSpace
        Filename pschedv1
        Language C
        Schedule
                offset 0.0
                exectime 0.1
                offset 5*0.1
                exectime 0.1
        EndSchedule
        Task Initial
                StartIt true
        EndTask

        Object 10
                Task dummy1
                Entrypoint dummy1
                Priority 127
                StartIt  true
        EndObject

        Object 11
                Task dummy2
                Entrypoint dummy1
                Priority 127
                StartIt true
        EndObject

        Object 12
                Task background
                Entrypoint dummy1
                Priority 3
                StartIt true
        EndObject
       
EndAddressSpace
AddressSpace
        Filename pschedv2
        Language C
        Schedule
                offset 2*0.1
                exectime 2*0.1
        EndSchedule
        Task Initial
                StartIt true
        EndTask

        Object 10
                Task dummy1
                Entrypoint dummy2
                Priority 127
                StartIt true
        EndObject

        Object 11
                Task dummy2
                Entrypoint dummy2
                Priority 127
                StartIt true
        EndObject

        Object 12
                Task background
                Entrypoint dummy2
                Priority 3
                StartIt true
        EndObject
       
EndAddressSpace
AddressSpace
        Filename pschedv3
        Language C
        Schedule
                offset 7*0.1
                exectime 2*0.1
        EndSchedule
        Task Initial
                StartIt true
        EndTask

        Object 10
                Task dummy1
                Entrypoint dummy3
                Priority 127
                StartIt true
        EndObject

        Object 11
                Task dummy2
                Entrypoint dummy3
                Priority 127
                StartIt true
        EndObject
       
EndAddressSpace

_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer
Josh Matthews

Re: Hello World on arm926ejs (continued) and some questions on temporal partitioning and on POSIX.

Reply Threaded More More options
Print post
Permalink
In reply to this post by Hugues Balp
Hi Hugues,

Please comment out the following lines (1797 and 1798) in tools/kenge.py:

  if ret != 0:
    raise UserError, "licence_tool returned error, perhaps it's not
installed?"

to work around this issue.

Best regards,
Josh

On Fri, November 21, 2008 11:44 am, Hugues Balp wrote:

>
>     Thank you Peter for your answer,
>
> I have tried to compile the OKL4_3.0 archive with the command line you
> gave to me
> and got the following error:
>
> Executing: licence_tool --type=sdk --mode=expand
> /home/hugues/tools/okl4/okl4_3.0/build/SDK/object/sdk/sdk/okl4
> sh: licence_tool: not found
> scons: *** licence_tool returned error, perhaps it's not installed?
>
> So I suppose I have to install some kind of license tool and don't know
> how and
> what are the underlying conditions...
>
> Thanks in advance,
>
>                 Hugues.
>
>
> Peter Howard wrote:
>> On Tue, 2008-11-18 at 12:33 +0100, Hugues Balp wrote:
>>
>>> Peter Howard wrote:
>>>
>>>> Hugues,
>>>>
>>>> Checking round here, the SDK for the versatile is not set up, in the
>>>> _debug_ kernel, for use with qemu.  It (the debug kernel) is
>>>> configured
>>>> for use on the hardware (with JTAG).  This needs to be made clear on
>>>> the
>>>> wiki.
>>>>
>>>> To get the example going, you should use the make line
>>>>
>>>> make BUILD=production
>>>>
>>>> and then change the qemu line to refer to
>>>> build.micro-production/images/image.elf (or image.sim)
>>>>
>>>>
>>> Ok, it's ok with the production build, except it is less suited for
>>> debugging.
>>>
>>>> That should allow you to see the examples running.  Going back to your
>>>> original email(s) I understand your intended target _is_ versatile.
>>>> If
>>>> you want to contact me off-list we can go through in more detail how
>>>> to
>>>> build either from the source or re-build the SDK to have it set up as
>>>> you want.
>>>>
>>>>
>>>>
>>> Yes, I think I will have to rebuild the SDK with the qemu set up.
>>> The objective would be to enable debugging on the host with gdb and
>>> qemu.
>>> Can I try to compile from the kernel sources ?
>>> Is there some tricky things to do for that purpose ?
>>> I imagine the main build scripts are already present.
>>>
>>
>> Sorry for the delay.  To build the SDK from the full source release so
>> you can run the debug kernel in quemu, the invocation is:
>>
>> tools/build.py machine=versatile_uboot project=sdk kdb_serial=True
>>
>> the sdk tarball will be in build/SDK/object/sdk/
>>
>>
>
>
> _______________________________________________
> Developer mailing list
> [hidden email]
> https://lists.okl4.org/mailman/listinfo/developer
>


_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer
Stefan M. Petters

Re: temporal partitioning

Reply Threaded More More options
Print post
Permalink
In reply to this post by Hugues Balp
Dear Hugues,

we have done work in that area here at NICTA/ERTOS. The code is by now
outdated (that was student work on an old kernel version which so far
hasn't received the cleanup to be published).
Google for RBED and Scott Brandt. That's roughly what we implemented
(there's currently a paper in review, the fate of which should be known
in a week, in which case we should have something public in a  couple of
weeks.
Comparing with Scott's work we put the resource allocator into the root
task and the actual task management into the kernel. I intend to pick
that up again soon and it should be a piece of cake with the scheduler
interface compared to the 1.5.2 we used.

Regards,
    Stefan.
Hugues Balp wrote:

>
>           Hi all,
>
>    is it possible with OKL4 to respect a fixed temporal partitioning
> like in ARINC 653 ?
>
>    For example with the GreenHills Integrity operating system we can
> plannify a strict scheduling for our application by a file descriptor to
> allocate each time slice to a specific partition, as the one joined to
> this mail...
>
>    Would it be possible to imagine the same kind of example running on
> top of OKL4 ?
>
> Regards,
>
>          Hugues.
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Developer mailing list
> [hidden email]
> https://lists.okl4.org/mailman/listinfo/developer


--

Stefan M. Petters

Senior Researcher

Embedded Systems

 

NICTA | Locked Bag 9013 | Alexandria NSW 1435

T +61 2 8306 0560 | F +61 2 8306 0406
www.nicta.com.au <http://www.nicta.com.au/> |
[hidden email] <mailto:[hidden email]>

 

From imagination to impact.


_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer
sloly09

Re: Hello World on arm926ejs (continued)

Reply Threaded More More options
Print post
Permalink
In reply to this post by Hugues Balp
hi
  I have a problem to compile the sample hello word exemple coming with SDK on arm926 ejs. When I compile the program by invoking make in a terminal I have this error:

   make BUILD=productionmake -C decrypt KERNEL=micro BUILD=production
make[1]: Entering directory `/home/mingot/SDK/sdk/okl4/arm926ejs/examples/decrypt/decrypt'
cp decrypt.xml.in build.micro-production/bin/decrypt.xml
arm-unknown-linux-gnueabi-gcc -O2 --std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wmissing-declarations -Wredundant-decls -Wundef -Wpointer-arith -Wno-nonnull -Werror -march=armv5te -O2 -nostdlib -nostdinc -g  -Iinclude -I/home/mingot/SDK/sdk/okl4/arm926ejs/micro-production/include  -DNDEBUG -c src/main.c -o build.micro-production/src/main.o
src/main.c: In function 'main':
src/main.c:32: error: 'DECRYPT_MASK' undeclared (first use in this function)
src/main.c:32: error: (Each undeclared identifier is reported only once
src/main.c:32: error: for each function it appears in.)
make[1]: *** [build.micro-production/src/main.o] Error 1
make[1]: Leaving directory `/home/mingot/SDK/sdk/okl4/arm926ejs/examples/decrypt/decrypt'
make: *** [decrypt/build.micro-production/bin/decrypt.xml] Error 2


  Can you help me?

Hugues Balp wrote:
Thanks for your advices.

I have now downloaded from the OKL4 wiki the binary version of the
arm-unkown-linux-gnueabi crosstool chain and recompiled from scratch
the singlecell example within the binary SDK.

The images are well generated but they don't work better on my host
than the images I have built in parallel with my own crosstool chain...

In both cases a warning exception is raised because no DNS server is found,
which is a little surprising when the test is performed locally.

      "Warning: No DNS servers found"

This problem doesn't seem to be blocking and occurs also in other
qemu use cases contexts as I can when googling a little on the subject...
But perhaps this explain what happens after ? I don't know !

So when I run qemu with the following command:

   qemu-system-arm -s -M versatileab -start-addr 0x07900000 -nographic -kernel
build.micro-debug/images/image.elf

 the warning is printed on stdout and the process enter in an infinite loop
without printing any "Hello World" message...

I've tried to debug with gdb by starting qemu with the '-s' option
and running gdb,
    loading the symbol table of the "hello" program and
    opening a remote target connection to the default local port 1234.
After the connection to the qemu process I typed 'c' to continue the
execution and then stopped to see the stack...
No symbols are readable... Only some ?? and 0x0....
I don't have change the endian-ness ( little by default on PC and ARM ).

What is surprising is to see the entry point address settled to
0x7900000 only in the image.boot and image.sim files and not in the
image.elf nor in the image.elf.nobits files.

Another suprising thing is to see the following message on stderr
when viewing the full symbol list of the elf image thanks to "readelf -a"

...
  2247: 8000fba0     4 OBJECT  GLOBAL DEFAULT    6 hello-_kr_malloc_freep
  2248: 8000fec0     4 OBJECT  GLOBAL DEFAULT    6readelf: Warning: corrupt note
found at offset 0 into core notes
readelf: Warning:  type: 1, namesize: 00000011, descsize: 00000300
 hello-sys_siglist
  2249: 8000fba4     4 OBJECT  GLOBAL DEFAULT    6 hello-__malloc_bss
...

You can also find here attached the elf header so as the system traces
when I run qemu with the image.elf file....( I have splitted the end
because it is a periodic repetition of getimeofday and select calls... ).

Concerning the compilation of qemu, I have tried both with gcc-3.4.6
et gcc-4.2.4. No differences when loading the image....

The compilation process of qemu-system-arm seems to be ok because I
have tried it with another SDK ( namely for the kzm platform
supporting arm1136js processors ) and the hello elf image runs
well for this target. In that case, the readelf -a command doesn't
raise a warning as for the arm629ejs target !

To sum up the hello world is ok on my host for arm1136js but not
 for arm926ejs, and I think something goes wrong with the SDK for
arm926ejs...

Did you have tested the singlecell example after recompilation
from scratch of the crosstool chain and of the SDK-arm926ejs ?

Could you please try the image I have sent to you in the preceding
message to check if you encouter the same troubles with it ?

On the other hand I could try a 'reference' image.elf file the
singlecell example on arm926ejs that you can send to me in order to test if the
problem is due to my system environments or not ( ubuntu hardy and
 gentoo based-systems ).

Best regards,

     Hugues Balp.



------------------------------------------------------------------------

ELF Header:
  Magic:   7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            ARM
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0xf0000000
  Start of program headers:          52 (bytes into file)
  Start of section headers:          378520 (bytes into file)
  Flags:                             0x200, GNU EABI, software FP
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         7
  Size of section headers:           40 (bytes)
  Number of section headers:         24
  Section header string table index: 21

------------------------------------------------------------------------

execve("/opt/okqemu/bin/qemu-system-arm", ["/opt/okqemu/bin/qemu-system-arm", "-M", "versatileab", "-start-addr", "0x07900000", "-nographic", "-kernel", "build.micro-debug/images/image.e"...], [/* 37 vars */]) = 0
uname({sys="Linux", node="TRTP8051", ...}) = 0
brk(0)                                  = 0x8482000
brk(0x8482cb0)                          = 0x8482cb0
set_thread_area({entry_number:-1 -> 6, base_addr:0x8482830, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
set_tid_address(0x8482878)              = 13376
set_robust_list(0x8482880, 0xc)         = 0
futex(0xbfef00c8, 0x81 /* FUTEX_??? */, 1) = 0
rt_sigaction(SIGRTMIN, {0x8199340, [], SA_SIGINFO}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x8199270, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
uname({sys="Linux", node="TRTP8051", ...}) = 0
brk(0x84a3cb0)                          = 0x84a3cb0
brk(0x84a4000)                          = 0x84a4000
rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 717921896}) = 0
rt_sigaction(SIGALRM, {0x8049100, ~[RTMIN RT_1], 0}, NULL, 8) = 0
timer_create(CLOCK_REALTIME, {(nil), SIGALRM, SIGEV_SIGNAL, {...}}, {(nil)}) = 0
rt_sigaction(SIGUSR2, {0x805a7b0, ~[RTMIN RT_1], 0}, NULL, 8) = 0
open("/etc/resolv.conf", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
write(2, "Warning: No DNS servers found\n", 30Warning: No DNS servers found
) = 30
uname({sys="Linux", node="TRTP8051", ...}) = 0
open("/etc/resolv.conf", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
uname({sys="Linux", node="TRTP8051", ...}) = 0
stat64("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
open("/etc/resolv.conf", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
uname({sys="Linux", node="TRTP8051", ...}) = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
socket(PF_FILE, SOCK_STREAM, 0)         = 3
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory)
close(3)                                = 0
open("/etc/nsswitch.conf", O_RDONLY)    = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=513, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "# /etc/nsswitch.conf\n#\n# Example"..., 4096) = 513
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=101035, ...}) = 0
mmap2(NULL, 101035, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f84000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libnss_files.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\30"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=38408, ...}) = 0
mmap2(NULL, 41624, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7f79000
mmap2(0xb7f82000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7f82000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260e\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1294572, ...}) = 0
mmap2(NULL, 1300080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e3b000
mmap2(0xb7f73000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x138) = 0xb7f73000
mmap2(0xb7f76000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f76000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/ld-linux.so.2", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\10\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=113248, ...}) = 0
mmap2(NULL, 112232, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e1f000
mmap2(0xb7e39000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a) = 0xb7e39000
close(3)                                = 0
mprotect(0xb7f73000, 4096, PROT_READ)   = 0
munmap(0xb7f84000, 101035)              = 0
open("/etc/host.conf", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "# The \"order\" line is only used "..., 4096) = 92
read(3, "", 4096)                       = 0
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
futex(0x828c440, 0x81 /* FUTEX_??? */, 2147483647) = 0
mmap2(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d1f000
open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 3
fcntl64(3, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)
fstat64(3, {st_mode=S_IFREG|0644, st_size=334, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f9c000
read(3, "127.0.0.1\tlocalhost\n#192.168.1.1"..., 4096) = 334
close(3)                                = 0
munmap(0xb7f9c000, 4096)                = 0
mmap2(NULL, 134225920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xafd1d000
mmap2(NULL, 33554432, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xadd1d000
mprotect(0x8475000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mmap2(NULL, 18878464, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacb1c000
mmap2(NULL, 139264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacafa000
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
fcntl64(0, F_GETFL)                     = 0x2 (flags O_RDWR)
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 opost -isig -icanon -echo ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost -isig -icanon -echo ...}) = 0
fcntl64(0, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
brk(0)                                  = 0x84a4000
brk(0x84c5000)                          = 0x84c5000
brk(0)                                  = 0x84c5000
brk(0x84e7000)                          = 0x84e7000
brk(0)                                  = 0x84e7000
brk(0x8509000)                          = 0x8509000
brk(0)                                  = 0x8509000
brk(0x852b000)                          = 0x852b000
brk(0)                                  = 0x852b000
brk(0x854d000)                          = 0x854d000
brk(0)                                  = 0x854d000
brk(0x856f000)                          = 0x856f000
brk(0)                                  = 0x856f000
brk(0x8591000)                          = 0x8591000
brk(0)                                  = 0x8591000
brk(0x85b3000)                          = 0x85b3000
brk(0)                                  = 0x85b3000
brk(0x85d5000)                          = 0x85d5000
brk(0)                                  = 0x85d5000
brk(0x85f7000)                          = 0x85f7000
time(NULL)                              = 1226572445
open("/etc/localtime", O_RDONLY)        = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacaf9000
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\0\0\f\0\0"..., 4096) = 2945
_llseek(3, -28, [2917], SEEK_CUR)       = 0
read(3, "\nCET-1CEST,M3.5.0,M10.5.0/3\n", 4096) = 28
close(3)                                = 0
munmap(0xacaf9000, 4096)                = 0
stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
open("build.micro-debug/images/image.elf", O_RDONLY|O_LARGEFILE) = 3
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0", 16) = 16
_llseek(3, 0, [0], SEEK_SET)            = 0
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\2\0(\0\1\0\0\0\0\0\0\360"..., 52) = 52
_llseek(3, 378520, [378520], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 342405, [342405], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\0\360\0\0\0"..., 36112) = 36112
_llseek(3, 303104, [303104], SEEK_SET)  = 0
brk(0)                                  = 0x85f7000
brk(0x861d000)                          = 0x861d000
read(3, "\0$a\0$d\0_Z19finish_sys_schedulev\0"..., 38197) = 38197
_llseek(3, 52, [52], SEEK_SET)          = 0
read(3, "\1\0\0\0\0\200\0\0\0\0\0\360\0\0\220\7,w\2\0,w\2\0\5\0"..., 224) = 224
mmap2(NULL, 163840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xacad2000
_llseek(3, 32768, [32768], SEEK_SET)    = 0
read(3, "\323\360)\343x\0\240\343\20\17\1\356~\377\27\356\375\377"..., 161580) = 161580
munmap(0xacad2000, 163840)              = 0
_llseek(3, 196608, [196608], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 7120) = 7120
_llseek(3, 229376, [229376], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 24576) = 24576
_llseek(3, 262144, [262144], SEEK_SET)  = 0
read(3, "\34\0\237\345\0\0\220\345D\0\220\345\26\0\0\352\4\0\235"..., 31276) = 31276
_llseek(3, 293436, [293436], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0,y\0\200\\\373\0\200\0\0\0\0\360"..., 344) = 344
_llseek(3, 294912, [294912], SEEK_SET)  = 0
read(3, "\33\0\244\262\204\10\1\200\334\0\1\200\214\10\1\200\340"..., 2592) = 2592
_llseek(3, 299008, [299008], SEEK_SET)  = 0
read(3, "(\1\25\6\1\0\0\0\2\0\1\0\0\4 \4\3\0\2\0\0\1\0\1\0\1\0\0"..., 4096) = 4096
close(3)                                = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 758189225}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 758255228}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 250000}}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, xd{8268, 758471539}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 758534260}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 65330}}) = 0
--- SIGALRM (Alarm clock) @ 0 (0) ---
sigreturn()                             = ? (mask now [])
select(1, [0], [], [], {0, 0})          = 0 (Timeout)
gettimeofday({1226572445, 40366}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 759678186}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 759815013}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 759925997}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 760070646}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 29000000}}, NULL) = 0
--- SIGALRM (Alarm clock) @ 0 (0) ---
sigreturn()                             = ? (mask now [])
select(1, [0], [], [], {0, 0})          = 0 (Timeout)
gettimeofday({1226572445, 70676}, NULL) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 789870126}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 789934454}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 790031608}) = 0
clock_gettime(CLOCK_MONOTONIC, {8268, 790099288}) = 0
timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 30000000}}, NULL) = 0
--- SIGALRM (Alarm clock) @ 0 (0) ---
sigreturn()                             = ? (mask now [])
etc...
--- SIGTERM (Terminated) @ 0 (0) ---
+++ killed by SIGTERM +++

Process 13376 detached


_______________________________________________
Developer mailing list
Developer@okl4.org
https://lists.okl4.org/mailman/listinfo/developer
Josh Matthews

Re: Hello World on arm926ejs (continued)

Reply Threaded More More options
Print post
Permalink
Hi Pierre-Paul,

When building from source, our SCons build system defines DECRYPT_MASK:
examples/decrypt/SConscript:env.Append(CPPDEFINES=[("DECRYPT_MASK", 0x34)])

However, when building from the SDK (which is the recommend approach),
you'll need to define this yourself somewhere. You can do this in the
decrypt cell Makefile (by editing DEFINES) or directly in the decrypt
main.c src file.

Hope this helps,
Best regards,

Josh

On Fri, February 20, 2009 5:55 am, sloly09 wrote:

>
> hi
>   I have a problem to compile the sample hello word exemple coming with
> SDK
> on arm926 ejs. When I compile the program by invoking make in a terminal I
> have this error:
>
>    make BUILD=productionmake -C decrypt KERNEL=micro BUILD=production
> make[1]: Entering directory
> `/home/mingot/SDK/sdk/okl4/arm926ejs/examples/decrypt/decrypt'
> cp decrypt.xml.in build.micro-production/bin/decrypt.xml
> arm-unknown-linux-gnueabi-gcc -O2 --std=gnu99 -Wall -Wstrict-prototypes
> -Wmissing-prototypes -Wnested-externs -Wmissing-declarations
> -Wredundant-decls -Wundef -Wpointer-arith -Wno-nonnull -Werror
> -march=armv5te -O2 -nostdlib -nostdinc -g  -Iinclude
> -I/home/mingot/SDK/sdk/okl4/arm926ejs/micro-production/include  -DNDEBUG
> -c
> src/main.c -o build.micro-production/src/main.o
> src/main.c: In function 'main':
> src/main.c:32: error: 'DECRYPT_MASK' undeclared (first use in this
> function)
> src/main.c:32: error: (Each undeclared identifier is reported only once
> src/main.c:32: error: for each function it appears in.)
> make[1]: *** [build.micro-production/src/main.o] Error 1
> make[1]: Leaving directory
> `/home/mingot/SDK/sdk/okl4/arm926ejs/examples/decrypt/decrypt'
> make: *** [decrypt/build.micro-production/bin/decrypt.xml] Error 2
>
>
>   Can you help me?
>
>
> Hugues Balp wrote:
>>
>> Thanks for your advices.
>>
>> I have now downloaded from the OKL4 wiki the binary version of the
>> arm-unkown-linux-gnueabi crosstool chain and recompiled from scratch
>> the singlecell example within the binary SDK.
>>
>> The images are well generated but they don't work better on my host
>> than the images I have built in parallel with my own crosstool chain...
>>
>> In both cases a warning exception is raised because no DNS server is
>> found,
>> which is a little surprising when the test is performed locally.
>>
>>       "Warning: No DNS servers found"
>>
>> This problem doesn't seem to be blocking and occurs also in other
>> qemu use cases contexts as I can when googling a little on the
>> subject...
>> But perhaps this explain what happens after ? I don't know !
>>
>> So when I run qemu with the following command:
>>
>>    qemu-system-arm -s -M versatileab -start-addr 0x07900000 -nographic
>> -kernel
>> build.micro-debug/images/image.elf
>>
>>  the warning is printed on stdout and the process enter in an infinite
>> loop
>> without printing any "Hello World" message...
>>
>> I've tried to debug with gdb by starting qemu with the '-s' option
>> and running gdb,
>>     loading the symbol table of the "hello" program and
>>     opening a remote target connection to the default local port 1234.
>> After the connection to the qemu process I typed 'c' to continue the
>> execution and then stopped to see the stack...
>> No symbols are readable... Only some ?? and 0x0....
>> I don't have change the endian-ness ( little by default on PC and ARM ).
>>
>> What is surprising is to see the entry point address settled to
>> 0x7900000 only in the image.boot and image.sim files and not in the
>> image.elf nor in the image.elf.nobits files.
>>
>> Another suprising thing is to see the following message on stderr
>> when viewing the full symbol list of the elf image thanks to "readelf
>> -a"
>>
>> ...
>>   2247: 8000fba0     4 OBJECT  GLOBAL DEFAULT    6
>> hello-_kr_malloc_freep
>>   2248: 8000fec0     4 OBJECT  GLOBAL DEFAULT    6readelf: Warning:
>> corrupt note
>> found at offset 0 into core notes
>> readelf: Warning:  type: 1, namesize: 00000011, descsize: 00000300
>>  hello-sys_siglist
>>   2249: 8000fba4     4 OBJECT  GLOBAL DEFAULT    6 hello-__malloc_bss
>> ...
>>
>> You can also find here attached the elf header so as the system traces
>> when I run qemu with the image.elf file....( I have splitted the end
>> because it is a periodic repetition of getimeofday and select calls...
>> ).
>>
>> Concerning the compilation of qemu, I have tried both with gcc-3.4.6
>> et gcc-4.2.4. No differences when loading the image....
>>
>> The compilation process of qemu-system-arm seems to be ok because I
>> have tried it with another SDK ( namely for the kzm platform
>> supporting arm1136js processors ) and the hello elf image runs
>> well for this target. In that case, the readelf -a command doesn't
>> raise a warning as for the arm629ejs target !
>>
>> To sum up the hello world is ok on my host for arm1136js but not
>>  for arm926ejs, and I think something goes wrong with the SDK for
>> arm926ejs...
>>
>> Did you have tested the singlecell example after recompilation
>> from scratch of the crosstool chain and of the SDK-arm926ejs ?
>>
>> Could you please try the image I have sent to you in the preceding
>> message to check if you encouter the same troubles with it ?
>>
>> On the other hand I could try a 'reference' image.elf file the
>> singlecell example on arm926ejs that you can send to me in order to test
>> if the
>> problem is due to my system environments or not ( ubuntu hardy and
>>  gentoo based-systems ).
>>
>> Best regards,
>>
>>      Hugues Balp.
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> ELF Header:
>>   Magic:   7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
>>   Class:                             ELF32
>>   Data:                              2's complement, little endian
>>   Version:                           1 (current)
>>   OS/ABI:                            ARM
>>   ABI Version:                       0
>>   Type:                              EXEC (Executable file)
>>   Machine:                           ARM
>>   Version:                           0x1
>>   Entry point address:               0xf0000000
>>   Start of program headers:          52 (bytes into file)
>>   Start of section headers:          378520 (bytes into file)
>>   Flags:                             0x200, GNU EABI, software FP
>>   Size of this header:               52 (bytes)
>>   Size of program headers:           32 (bytes)
>>   Number of program headers:         7
>>   Size of section headers:           40 (bytes)
>>   Number of section headers:         24
>>   Section header string table index: 21
>>
>> ------------------------------------------------------------------------
>>
>> execve("/opt/okqemu/bin/qemu-system-arm",
>> ["/opt/okqemu/bin/qemu-system-arm", "-M", "versatileab", "-start-addr",
>> "0x07900000", "-nographic", "-kernel",
>> "build.micro-debug/images/image.e"...], [/* 37 vars */]) = 0
>> uname({sys="Linux", node="TRTP8051", ...}) = 0
>> brk(0)                                  = 0x8482000
>> brk(0x8482cb0)                          = 0x8482cb0
>> set_thread_area({entry_number:-1 -> 6, base_addr:0x8482830,
>> limit:1048575,
>> seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1,
>> seg_not_present:0, useable:1}) = 0
>> set_tid_address(0x8482878)              = 13376
>> set_robust_list(0x8482880, 0xc)         = 0
>> futex(0xbfef00c8, 0x81 /* FUTEX_??? */, 1) = 0
>> rt_sigaction(SIGRTMIN, {0x8199340, [], SA_SIGINFO}, NULL, 8) = 0
>> rt_sigaction(SIGRT_1, {0x8199270, [], SA_RESTART|SA_SIGINFO}, NULL, 8) =
>> 0
>> rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
>> getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) =
>> 0
>> uname({sys="Linux", node="TRTP8051", ...}) = 0
>> brk(0x84a3cb0)                          = 0x84a3cb0
>> brk(0x84a4000)                          = 0x84a4000
>> rt_sigaction(SIGPIPE, {SIG_IGN}, NULL, 8) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 717921896}) = 0
>> rt_sigaction(SIGALRM, {0x8049100, ~[RTMIN RT_1], 0}, NULL, 8) = 0
>> timer_create(CLOCK_REALTIME, {(nil), SIGALRM, SIGEV_SIGNAL, {...}},
>> {(nil)}) = 0
>> rt_sigaction(SIGUSR2, {0x805a7b0, ~[RTMIN RT_1], 0}, NULL, 8) = 0
>> open("/etc/resolv.conf", O_RDONLY|O_LARGEFILE) = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0)
>> = 0xb7f9c000
>> read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
>> read(3, "", 4096)                       = 0
>> close(3)                                = 0
>> munmap(0xb7f9c000, 4096)                = 0
>> write(2, "Warning: No DNS servers found\n", 30Warning: No DNS servers
>> found
>> ) = 30
>> uname({sys="Linux", node="TRTP8051", ...}) = 0
>> open("/etc/resolv.conf", O_RDONLY)      = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0)
>> = 0xb7f9c000
>> read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
>> read(3, "", 4096)                       = 0
>> close(3)                                = 0
>> munmap(0xb7f9c000, 4096)                = 0
>> uname({sys="Linux", node="TRTP8051", ...}) = 0
>> stat64("/etc/resolv.conf", {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
>> open("/etc/resolv.conf", O_RDONLY)      = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=151, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0)
>> = 0xb7f9c000
>> read(3, "# Dynamic resolv.conf(5) file fo"..., 4096) = 151
>> read(3, "", 4096)                       = 0
>> close(3)                                = 0
>> munmap(0xb7f9c000, 4096)                = 0
>> uname({sys="Linux", node="TRTP8051", ...}) = 0
>> socket(PF_FILE, SOCK_STREAM, 0)         = 3
>> fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
>> connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1
>> ENOENT (No such file or directory)
>> close(3)                                = 0
>> socket(PF_FILE, SOCK_STREAM, 0)         = 3
>> fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
>> connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1
>> ENOENT (No such file or directory)
>> close(3)                                = 0
>> open("/etc/nsswitch.conf", O_RDONLY)    = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=513, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0)
>> = 0xb7f9c000
>> read(3, "# /etc/nsswitch.conf\n#\n# Example"..., 4096) = 513
>> read(3, "", 4096)                       = 0
>> close(3)                                = 0
>> munmap(0xb7f9c000, 4096)                = 0
>> open("/etc/ld.so.cache", O_RDONLY)      = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=101035, ...}) = 0
>> mmap2(NULL, 101035, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f84000
>> close(3)                                = 0
>> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
>> directory)
>> open("/lib/libnss_files.so.2", O_RDONLY) = 3
>> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\30"...,
>> 512)
>> = 512
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=38408, ...}) = 0
>> mmap2(NULL, 41624, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)
>> =
>> 0xb7f79000
>> mmap2(0xb7f82000, 8192, PROT_READ|PROT_WRITE,
>> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x8) = 0xb7f82000
>> close(3)                                = 0
>> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
>> directory)
>> open("/lib/libc.so.6", O_RDONLY)        = 3
>> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260e\1"...,
>> 512)
>> = 512
>> fstat64(3, {st_mode=S_IFREG|0755, st_size=1294572, ...}) = 0
>> mmap2(NULL, 1300080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
>> 0)
>> = 0xb7e3b000
>> mmap2(0xb7f73000, 12288, PROT_READ|PROT_WRITE,
>> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x138) = 0xb7f73000
>> mmap2(0xb7f76000, 9840, PROT_READ|PROT_WRITE,
>> MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7f76000
>> close(3)                                = 0
>> access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or
>> directory)
>> open("/lib/ld-linux.so.2", O_RDONLY)    = 3
>> read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\10\0"...,
>> 512)
>> = 512
>> fstat64(3, {st_mode=S_IFREG|0755, st_size=113248, ...}) = 0
>> mmap2(NULL, 112232, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3,
>> 0)
>> = 0xb7e1f000
>> mmap2(0xb7e39000, 8192, PROT_READ|PROT_WRITE,
>> MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a) = 0xb7e39000
>> close(3)                                = 0
>> mprotect(0xb7f73000, 4096, PROT_READ)   = 0
>> munmap(0xb7f84000, 101035)              = 0
>> open("/etc/host.conf", O_RDONLY)        = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=92, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0)
>> = 0xb7f9c000
>> read(3, "# The \"order\" line is only used "..., 4096) = 92
>> read(3, "", 4096)                       = 0
>> close(3)                                = 0
>> munmap(0xb7f9c000, 4096)                = 0
>> futex(0x828c440, 0x81 /* FUTEX_??? */, 2147483647) = 0
>> mmap2(NULL, 1048576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
>> -1,
>> 0) = 0xb7d1f000
>> open("/etc/hosts", O_RDONLY|0x80000 /* O_??? */) = 3
>> fcntl64(3, F_GETFD)                     = 0x1 (flags FD_CLOEXEC)
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=334, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0)
>> = 0xb7f9c000
>> read(3, "127.0.0.1\tlocalhost\n#192.168.1.1"..., 4096) = 334
>> close(3)                                = 0
>> munmap(0xb7f9c000, 4096)                = 0
>> mmap2(NULL, 134225920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
>> -1, 0) = 0xafd1d000
>> mmap2(NULL, 33554432, PROT_READ|PROT_WRITE|PROT_EXEC,
>> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xadd1d000
>> mprotect(0x8475000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
>> mmap2(NULL, 18878464, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
>> -1,
>> 0) = 0xacb1c000
>> mmap2(NULL, 139264, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0) = 0xacafa000
>> ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
>> ...}) = 0
>> fcntl64(0, F_GETFL)                     = 0x2 (flags O_RDWR)
>> ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo
>> ...}) = 0
>> ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 opost -isig -icanon -echo
>> ...}) = 0
>> ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost -isig -icanon
>> -echo
>> ...}) = 0
>> fcntl64(0, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
>> brk(0)                                  = 0x84a4000
>> brk(0x84c5000)                          = 0x84c5000
>> brk(0)                                  = 0x84c5000
>> brk(0x84e7000)                          = 0x84e7000
>> brk(0)                                  = 0x84e7000
>> brk(0x8509000)                          = 0x8509000
>> brk(0)                                  = 0x8509000
>> brk(0x852b000)                          = 0x852b000
>> brk(0)                                  = 0x852b000
>> brk(0x854d000)                          = 0x854d000
>> brk(0)                                  = 0x854d000
>> brk(0x856f000)                          = 0x856f000
>> brk(0)                                  = 0x856f000
>> brk(0x8591000)                          = 0x8591000
>> brk(0)                                  = 0x8591000
>> brk(0x85b3000)                          = 0x85b3000
>> brk(0)                                  = 0x85b3000
>> brk(0x85d5000)                          = 0x85d5000
>> brk(0)                                  = 0x85d5000
>> brk(0x85f7000)                          = 0x85f7000
>> time(NULL)                              = 1226572445
>> open("/etc/localtime", O_RDONLY)        = 3
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
>> fstat64(3, {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
>> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0)
>> = 0xacaf9000
>> read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\0\0\f\0\0"...,
>> 4096) = 2945
>> _llseek(3, -28, [2917], SEEK_CUR)       = 0
>> read(3, "\nCET-1CEST,M3.5.0,M10.5.0/3\n", 4096) = 28
>> close(3)                                = 0
>> munmap(0xacaf9000, 4096)                = 0
>> stat64("/etc/localtime", {st_mode=S_IFREG|0644, st_size=2945, ...}) = 0
>> open("build.micro-debug/images/image.elf", O_RDONLY|O_LARGEFILE) = 3
>> read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0", 16) = 16
>> _llseek(3, 0, [0], SEEK_SET)            = 0
>> read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\2\0(\0\1\0\0\0\0\0\0\360"...,
>> 52)
>> = 52
>> _llseek(3, 378520, [378520], SEEK_SET)  = 0
>> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
>> 960)
>> = 960
>> _llseek(3, 342405, [342405], SEEK_SET)  = 0
>> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0`\0\0\360\0\0\0"...,
>> 36112) = 36112
>> _llseek(3, 303104, [303104], SEEK_SET)  = 0
>> brk(0)                                  = 0x85f7000
>> brk(0x861d000)                          = 0x861d000
>> read(3, "\0$a\0$d\0_Z19finish_sys_schedulev\0"..., 38197) = 38197
>> _llseek(3, 52, [52], SEEK_SET)          = 0
>> read(3, "\1\0\0\0\0\200\0\0\0\0\0\360\0\0\220\7,w\2\0,w\2\0\5\0"...,
>> 224)
>> = 224
>> mmap2(NULL, 163840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
>> 0) = 0xacad2000
>> _llseek(3, 32768, [32768], SEEK_SET)    = 0
>> read(3, "\323\360)\343x\0\240\343\20\17\1\356~\377\27\356\375\377"...,
>> 161580) = 161580
>> munmap(0xacad2000, 163840)              = 0
>> _llseek(3, 196608, [196608], SEEK_SET)  = 0
>> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
>> 7120)
>> = 7120
>> _llseek(3, 229376, [229376], SEEK_SET)  = 0
>> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
>> 24576) = 24576
>> _llseek(3, 262144, [262144], SEEK_SET)  = 0
>> read(3, "\34\0\237\345\0\0\220\345D\0\220\345\26\0\0\352\4\0\235"...,
>> 31276) = 31276
>> _llseek(3, 293436, [293436], SEEK_SET)  = 0
>> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0,y\0\200\\\373\0\200\0\0\0\0\360"...,
>> 344) = 344
>> _llseek(3, 294912, [294912], SEEK_SET)  = 0
>> read(3, "\33\0\244\262\204\10\1\200\334\0\1\200\214\10\1\200\340"...,
>> 2592) = 2592
>> _llseek(3, 299008, [299008], SEEK_SET)  = 0
>> read(3, "(\1\25\6\1\0\0\0\2\0\1\0\0\4 \4\3\0\2\0\0\1\0\1\0\1\0\0"...,
>> 4096) = 4096
>> close(3)                                = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 758189225}) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 758255228}) = 0
>> timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
>> timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 250000}}, NULL) =
>> 0
>> clock_gettime(CLOCK_MONOTONIC, xd{8268, 758471539}) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 758534260}) = 0
>> timer_gettime(0, {it_interval={0, 0}, it_value={0, 65330}}) = 0
>> --- SIGALRM (Alarm clock) @ 0 (0) ---
>> sigreturn()                             = ? (mask now [])
>> select(1, [0], [], [], {0, 0})          = 0 (Timeout)
>> gettimeofday({1226572445, 40366}, NULL) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 759678186}) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 759815013}) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 759925997}) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 760070646}) = 0
>> timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
>> timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 29000000}}, NULL)
>> =
>> 0
>> --- SIGALRM (Alarm clock) @ 0 (0) ---
>> sigreturn()                             = ? (mask now [])
>> select(1, [0], [], [], {0, 0})          = 0 (Timeout)
>> gettimeofday({1226572445, 70676}, NULL) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 789870126}) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 789934454}) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 790031608}) = 0
>> clock_gettime(CLOCK_MONOTONIC, {8268, 790099288}) = 0
>> timer_gettime(0, {it_interval={0, 0}, it_value={0, 0}}) = 0
>> timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 30000000}}, NULL)
>> =
>> 0
>> --- SIGALRM (Alarm clock) @ 0 (0) ---
>> sigreturn()                             = ? (mask now [])
>> etc...
>> --- SIGTERM (Terminated) @ 0 (0) ---
>> +++ killed by SIGTERM +++
>>
>> Process 13376 detached
>>



_______________________________________________
Developer mailing list
[hidden email]
https://lists.okl4.org/mailman/listinfo/developer