EmbDev.net

Forum: ARM programming with GCC/GNU tools TMS470


Author: Thierry Taing (bunn)
Posted on:

Rate this post
0 useful
not useful
Hello,

I would like to know if there is somebody, who worked on TMS470r1a256
with WinARM or Eclipse ?

I try to write the different files :
   _ standard TMS470 header file : TMS470r1a256.h
   _ GNU makefile : makefile
   _ startup assembler file : crt.s
   _ GNU linker script file : tms470r1a256-flash.ld
   _ config file for ARM-USB-Tiny : TMS470_OpenOCD-Tiny.cfg

But as I'm a very beginner, I meet many problems :
   _ for the header file and the makefile, I think that it's
approximately ok
(but if somebody could check, it will be better)

   _ for the crt.s, I meet problems with WinARM and Eclipse.

        1. When I build there are error many error about the commands as
"b", "mov", "ldr"... I think that it's because of GNUARM, but I follow
the SPARKFUN's
tutorial(http://www.sparkfun.com/tutorial/ARM/ARM_Cross_Dev...).
I don't forget to add PATH. I meet this problem for WinARM and Eclipse.

        2. Another problem with crt.s is I don't know how to write it
for TMS470. I don't know what and how I need to initialize.

   _ for the linker script, I don't know what I must write in the MEMORY
section. In the TMS470's datasheet, I don't find adress for Memory
flash, RAM.
I don't understand how does it work.

   _ for the config file, I haven't found any information.

If there are people who can help me, I'd be very happy ! It's some days
I stay at the same point :-(

Thanks a lot !
Best regards

Author: Damien Hoyen (damien)
Posted on:

Rate this post
0 useful
not useful
Thierry Taing wrote:
> Hello,
>
> I would like to know if there is somebody, who worked on TMS470r1a256
> with WinARM or Eclipse ?
>
> I try to write the different files :
>    _ standard TMS470 header file : TMS470r1a256.h
>    _ GNU makefile : makefile
>    _ startup assembler file : crt.s
>    _ GNU linker script file : tms470r1a256-flash.ld
>    _ config file for ARM-USB-Tiny : TMS470_OpenOCD-Tiny.cfg
>
> But as I'm a very beginner, I meet many problems :
>    _ for the header file and the makefile, I think that it's
> approximately ok
> (but if somebody could check, it will be better)
>
>    _ for the crt.s, I meet problems with WinARM and Eclipse.
>
>         1. When I build there are error many error about the commands as
> "b", "mov", "ldr"... I think that it's because of GNUARM, but I follow
> the SPARKFUN's
> 
tutorial(http://www.sparkfun.com/tutorial/ARM/ARM_Cross_Dev...).
> I don't forget to add PATH. I meet this problem for WinARM and Eclipse.
>
>         2. Another problem with crt.s is I don't know how to write it
> for TMS470. I don't know what and how I need to initialize.
>
>    _ for the linker script, I don't know what I must write in the MEMORY
> section. In the TMS470's datasheet, I don't find adress for Memory
> flash, RAM.
> I don't understand how does it work.
>
>    _ for the config file, I haven't found any information.
>
> If there are people who can help me, I'd be very happy ! It's some days
> I stay at the same point :-(
>
> Thanks a lot !
> Best regards


Hi tierry,


I have never developed on TMS, but i'm using Eclipse, and i was with the
same problem as you as the beginning.

For a part of ASSEMBLARY file (*.s) i could find in example on the web,
the syntax was not digested correctly by GCC (especially comment)...
Particularly when i tried to import a assemblary file from a demo
running under  IAR or Keil.

Simply find a "good" file (written for GCC) or re-write it.

Regards.


Damien

Author: Thierry Taing (bunn)
Posted on:

Rate this post
0 useful
not useful
Hi Damien,

Thanks for your answer.
But the template file *.s that I found is for the lpc2106. It's an
example provided with Eclipse. So I think that it does work.
And it's strange that when I build everywhere there is an assembler
instruction, I've an error message.

After your post, I delete all comments, and there is no change.

If you or another have another idea... :(

Thanks !
Regards.

Thierry

Author: Damien Hoyen (damien)
Posted on:
Attached files:

Rate this post
0 useful
not useful
Thierry Taing wrote:
> Hi Damien,
>
> Thanks for your answer.
> But the template file *.s that I found is for the lpc2106. It's an
> example provided with Eclipse. So I think that it does work.
> And it's strange that when I build everywhere there is an assembler
> instruction, I've an error message.
>
> After your post, I delete all comments, and there is no change.
>
> If you or another have another idea... :(
>
> Thanks !
> Regards.
>
> Thierry



Hi,

Well, here, i attached my startup file use on my project
(target : Arm 9 STR91x.
(I tried to compile it for target ARM7tdmi, seems working)).
You will look the syntax.

Keep me in touch.

Damien

Author: Thierry Taing (bunn)
Posted on:
Attached files:
  • crt0.S (4.31 KB, 227 downloads)

Rate this post
0 useful
not useful
Hi Damien,

I can now compile with WinARM. I don't know for Eclipse, because I
uninstalled it.

I can compile now with the assembler file since I've taken a makefile
provided for lpc2106. I modified it a little for TMS470, but I don't
understand..

For the startup file, I used a file for lpc2106 (ARM7tdmi) too, but I
don't understand it all. And I don't know if it is the same
initialization for TMS470.
Could you explain me ?

Another problem is that I would like to use ARM-USB-Tiny to flash the
TMS470
and not use the port com1 as it's configured in the makefile.

You will find different file that I attached.

Author: Thierry Taing (bunn)
Posted on:
Attached files:

Rate this post
0 useful
not useful
Here the file *.ld

Author: Thierry Taing (bunn)
Posted on:
Attached files:

Rate this post
0 useful
not useful
Makefile

Author: Thierry Taing (bunn)
Posted on:

Rate this post
0 useful
not useful
Thanks a lot for your help !

Thierry

Author: Thierry Taing (bunn)
Posted on:

Rate this post
0 useful
not useful
I forget to ask something more.

When the compile is ok with WinARM and if I have the file .cfg, what do
I have to do to flash the TMS470 with OpenOCD ? What is the process ?

Regards.

Thierry

Author: Thierry Taing (bunn)
Posted on:
Attached files:

Rate this post
0 useful
not useful
Hi,

I wrote the *.cfg file for openocd.
I use ARM-usb-Tiny.

When I execute the command : openocd-ftd2xx -f ARM_USB_Tiny.cfg

I have these error messages :

C:\Program Files\openocd-r717\bin>openocd-ftd2xx -f ARM_USB_Tiny.cfg
Open On-Chip Debugger (2008-06-19 19:00) svn: 717
URL: http://svn.berlios.de/svnroot/repos/openocd/trunk
Info:    options.c:50 configuration_output_handler(): jtag_speed: 3, 3
Info:    options.c:50 configuration_output_handler(): Open On-Chip
Debugger (200
8-06-19 19:00) svn: 717
Info:    options.c:50 configuration_output_handler(): Command info not
found
Info:    options.c:50 configuration_output_handler(): using flash keys
0xfffffff
f, 0xffffffff, 0xffffffff, 0xffffffff
Info:    options.c:50 configuration_output_handler(): osc_megahertz=12
Info:    options.c:50 configuration_output_handler(): plldis=0
Error:   jtag.c:1351 jtag_examine_chain(): JTAG communication failure,
check con
nection, JTAG interface, target power etc.
Error:   jtag.c:1556 jtag_init_inner(): trying to validate configured
JTAG chain
 anyway...
Error:   jtag.c:1444 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x00
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x01
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1565 jtag_init_inner(): Could not validate JTAG chain,
exit
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x81010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x8)
Error:   jtag.c:1399 jtag_examine_chain(): number of discovered devices
in JTAG
chain (20) doesn't match configuration (1)
Error:   jtag.c:1400 jtag_examine_chain(): check the config file and
ensure prop
er JTAG communication (connections, speed, ...)
Error:   jtag.c:1556 jtag_init_inner(): trying to validate configured
JTAG chain
 anyway...
Error:   jtag.c:1444 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x00
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1565 jtag_init_inner(): Could not validate JTAG chain,
exit
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x01010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x0)
Info:    jtag.c:1389 jtag_examine_chain(): JTAG device found: 0x81010001
(Manufa
cturer: 0x000, Part: 0x1010, Version: 0x8)
Error:   jtag.c:1399 jtag_examine_chain(): number of discovered devices
in JTAG
chain (20) doesn't match configuration (1)
Error:   jtag.c:1400 jtag_examine_chain(): check the config file and
ensure prop
er JTAG communication (connections, speed, ...)
Error:   jtag.c:1556 jtag_init_inner(): trying to validate configured
JTAG chain
 anyway...
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x01
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1456 jtag_validate_chain(): Error validating JTAG scan
chain, IR
 mismatch, scan returned 0x21
Error:   jtag.c:1565 jtag_init_inner(): Could not validate JTAG chain,
exit

Is there any body could help me ?

Thanks in advance,
Best regards

Thierry

Author: Thierry Taing (bunn)
Posted on:

Rate this post
0 useful
not useful
Hi everybody,

I need some help !!!
I have the different files *.bin, *.cfg, *.script to flash the TMS470
with OpenOCD, but when I launch the command, I get error message.

1. I get the following message : "sector was locked", "TMS470 could not
erase flash sector".

2. And another error message is : arm7_9_common.c:581
arm7_9execute_sys_speed() : timeout waiting for SYSCOMP & DBGACK, last
DBG_STATUS :10

For the first error message, I try to solve the issue in different ways
:

1. I used the commands in *.cfg file : flash protect in order to disable
the protection for erase/writing sectors, flash erase_sector. But it
doesn't work. These commands are not found.

2. Then I see in the TMS470 datasheet. there are some registers to
configure to choose the location of the memory flash and to enable
erase/write sectors. I wanted to configure the different registers in
the assembler file *.s, but I meet some issues when I compile. And I'm
not sure, it is there that I must do that.
I wrote this in the _start in the assembler file :

.set GLBCTRL, 0xffffffdc
.set MFBALR0, 0xfffffe04
.set MFBAHR0, 0xfffffe00

// Memory Fine Base Address High Register 0
// ldr r0,=MFBAHR0 //
// mov r1,#0xfffffe00 //error
// and r0,r0,#0xffff0000 //error
// str r0,[r1] //

// Memory Fine Base Address Low Register 0
// ldr r0,=MFBALR0 //
// mov r1,#0xfffffe04 //error
// and r0,r0,#0xffff0384 //error
// str r0,[r1] //

ldr r0,=GLBCTRL
mov r1,#0xffffffdc
orr r0,r0,#0x00000010
str r0,[r1] // GLBCTRL4=1

For the second error message, I don't understand.

If there is somebody who could help me, I will be very happy !

Thanks in advance.
Best regards

Thierry

Reply

Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]




Bild automatisch verkleinern, falls nötig
Note: the original post is older than 6 months. Please don't ask any new questions in this thread, but start a new one.