<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
One more thing:<br>
<br>
Did you try to run the code directly on the device after uploading
it or did you use a debugger to start the program?<br>
<br>
When I remember correcly all LPCxxx devices need a magic checksum so
that they are started on the device. The creation of this checksum
is in trunk, but I am pretty sure that it is not in release 2.6.4.<br>
<br>
Michael<br>
<br>
<div class="moz-cite-prefix">Am 23.10.14 um 20:52 schrieb Michael
Ring:<br>
</div>
<blockquote cite="mid:54494E67.1070203@michael-ring.org" type="cite">
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
I remember seeing the problem that gdb does not correctly
disassemble code...<br>
<br>
Please do a <br>
<br>
arm-none-eabi-readelf -A xxx.elf<br>
<br>
you should see:<br>
<br>
File Attributes<br>
Tag_CPU_name: "7-M"<br>
Tag_CPU_arch: v7<br>
Tag_CPU_arch_profile: Microcontroller<br>
Tag_THUMB_ISA_use: <b>Thumb-2</b><br>
<br>
Compiling, linking and running is fine for me, difference in setup
is that I use another processor (stm32f407) and that I used trunk
sources to compile the crosscompiler.<br>
But as Jeppe already mentioned, this all should have worked fine
with 2.6.4 version too.<br>
<br>
And your commandline you used for both creating the crosscompiler
/ build the program is exactly the same I use.<br>
<br>
Michael<br>
<br>
<div class="moz-cite-prefix">Am 23.10.14 um 20:15 schrieb Sietse
Achterop:<br>
</div>
<blockquote cite="mid:544945DA.9060705@rug.nl" type="cite">
Hello, <br>
I am trying to get the embedded version of fpc for arm to work.
<br>
Currently i try it for the lpc1768 from NXP using the lpcxpresso
board. <br>
The example compiles, but doesn't run on the target... <br>
<br>
I created a simple example and it seems that the code it
generates is NOT thumb2 code. <br>
I disassembled the elf-file generated by fpc using
"arm-none-eabi-objdump -S" <br>
I also disassembled it using the debugger "arm-none-eabi-gdb" <br>
Here is a fragment of the code from both: <br>
<br>
From objdump: <br>
000001c4 <FPC_INITIALIZEUNITS>: <br>
1c4: e92d4070 push {r4, r5, r6, lr} <br>
1c8: ebfffff5 bl 1a4 <SYSTEM_$$_FPC_CPUINIT> <br>
1cc: e59f006c ldr r0, [pc, #108] ; 240
<FPC_INITIALIZEUNITS+0x7c> <br>
1d0: e5904000 ldr r4, [r0] <br>
1d4: e3a05001 mov r5, #1 <br>
1d8: e1540005 cmp r4, r5 <br>
1dc: ba00000f blt 220
<FPC_INITIALIZEUNITS+0x5c> <br>
<br>
From gdb <br>
0x000001c4 <fpc_initializeunits+0>: 70 40
eors r0, r6 <br>
0x000001c6 <fpc_initializeunits+2>: 2d e9 f5
ff stmdb sp!, {r0, r2, r4, r5, r6, r7, r8, r9,
r10, r11, r12, sp, lr, pc} <br>
=> 0x000001ca <fpc_initializeunits+6>: ff eb 6c
00 ; <UNDEFINED> instruction:
0xebff006c <br>
0x000001ce <fpc_initializeunits+10>: 9f e5
b.n 0xfffffd10 <br>
0x000001d0 <fpc_initializeunits+12>: 00 40
ands r0, r0 <br>
0x000001d2 <fpc_initializeunits+14>: 90 e5
b.n 0xfffffcf6 <br>
0x000001d4 <fpc_initializeunits+16>: 01 50
str r1, [r0, r0] <br>
0x000001d6 <fpc_initializeunits+18>: a0 e3
b.n 0x91a <br>
0x000001d8 <fpc_initializeunits+20>: 05 00
movs r5, r0 <br>
0x000001da <fpc_initializeunits+22>: 54 e1
b.n 0x486 <br>
0x000001dc <fpc_initializeunits+24>: 0f 00
movs r7, r1 <br>
<br>
Note how the interpretation of the code is different, as is the
length of most instructions. <br>
It looks to me as if the code in the elf-file are (mostly)
32-bit values, while the debugger does interpret thee code as
thumb2 (i think). <br>
<br>
In the Makefile in rtl/embedded I find: <br>
<br>
ifeq ($(SUBARCH),armv7m) <br>
CPU_UNITS=lm3fury lm3tempest stm32f10x_ld stm32f10x_md
stm32f10x_hd stm32f10x_xl stm32f10x_conn stm32f10x_cl lpc13xx
lpc1768 lm4f120 xmc4500 cortexm3 cortexm4 # thumb2_bare <br>
endif <br>
<br>
So that suggest (via the comment) that fpc can do thumb2 code,
which it should for cortexm3. <br>
<br>
My PC is debian/jessie/64bit: Free Pascal Compiler version
2.6.4+dfsg-3 [2014/07/12] for x86_64 <br>
I got the sourcecode for the port from svn as described on the
website. <br>
To create the port I do: <br>
<br>
make clean buildbase installbase CROSSINSTALL=1
OS_TARGET=embedded CPU_TARGET=arm SUBARCH=armv7m
BINUTILSPREFIX=arm-none-eabi- <br>
<br>
For the binutils I use the (current) stuff for the lpc1768 from
NXP: lpcxpresso_7.4.0_229 <br>
<br>
To create a program I do: <br>
<br>
ppcrossarm -Ch1024 -Cs1024 -Tembedded -Parm -Cparmv7m
-XParm-none-eabi- -Wplpc1768 -vu prog.p <br>
<br>
Is there anybody that did get this port to work? <br>
<br>
Thanks in advance, <br>
Sietse <br>
<br>
<br>
<br>
_______________________________________________ <br>
fpc-devel maillist - <a moz-do-not-send="true"
class="moz-txt-link-abbreviated"
href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>
<br>
<a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</a>
<br>
</blockquote>
<br>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
fpc-devel maillist - <a class="moz-txt-link-abbreviated" href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</a>
</pre>
</blockquote>
<br>
</body>
</html>