Topic : Trying to create Serial Bootloader project for STR750 with RIDE

Forum : ARM

Original Post
Post Information Post
August 29, 2013 - 8:30pm
Guest

Hello to the RIDE forum. I am posting today in hopes that someone could help me with a project I am working on: a Serial Bootloader for the STR750 ARM processor, based on the ST Microelectronics Application Note AN2078.As a starting point, I am using a IAP demo package that ST Micro has made available. Here are the details:Title of STM software distribution:

Replies
Post Information Post
+1
0
-1
August 30, 2013 - 8:43am
Raisonance Support Team

Hello,
Your message has been snipped, please, could you post it again.

Thanks
regards,

+1
0
-1
September 3, 2013 - 8:51pm
Guest

* REPOST * Hello to the RIDE forum. I am posting today in hopes that someone could help me with a project I am working on: a Serial Bootloader for the STR750 ARM processor, based on the ST Microelectronics Application Note AN2078. As a starting point, I am using a IAP demo package that ST Micro has made available. Here are the details: Title of STM software distribution: "STR7 In-Application programming using UART" STM Part Number for software distribution: STSW-STR7026, version 1.0.  And now, here are the details of how I am using the STM package after downloading it: Development Platform: Raisonance IDE (RIDE) Version 6.10.22, running on Windows XP Home Edition SP3 Target device: STR750FV2 I unpackaged the download from STM (delivered as a ZIP archive) into a Windows XP computer. I made a few slight changes to the directory structure, specifically, I changed some folder names, and I added a RIDE folder in the "project" subdirectory. Presented below is the folder hierarchy I used. [FLASH_Bootloader-AN2078] | -- [BinaryExamples] | -- [STR7xxIAP] | -- [common] | -- [flashlib] | -- [stdlib] | -- [str71xdemo] | -- [str73xdemo] | -- [str75xdemo] | -- [include] | -- [project] | | -- [EWARM] | | -- [RIDE] **CREATED BY ME** | -- [source] Here are the steps I performed, up to where I get stuck: STEP 1: Launched RIDE 6.10.22. STEP 2: Created and saved a new project, "STR75X_Bootloader.prj", within "RIDE" folder. STEP 3: Copied "main.c" from the "source" folder and put it in the "RIDE" folder. STEP 4: Used menu sequence "Project > Add node Source/Application" to import "main.c" into the current project. STEP 5: Used menu sequence "Project > Build all" to compile the Bootloader Demo application. STEP 6: Encountered "missing file" errors, which were worked around by copying whatever was missing directly into the "RIDE" folder. Repeated this until the project was successfully compiled, but with warnings (see Additional Information). STEP 7: Fails to link. Additional Information: 1. Warnings were given after the project finished compiling. Those warnings are given below: ********************** c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c: In function 'main': c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:156: warning: pointer targets in passing argument 1 of 'SerialPutString' differ in signedness c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:157: warning: pointer targets in passing argument 1 of 'SerialPutString' differ in signedness c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:158: warning: pointer targets in passing argument 1 of 'SerialPutString' differ in signedness c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:159: warning: pointer targets in passing argument 1 of 'SerialPutString' differ in signedness c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:160: warning: pointer targets in passing argument 1 of 'SerialPutString' differ in signedness c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:161: warning: pointer targets in passing argument 1 of 'SerialPutString' differ in signedness c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:162: warning: pointer targets in passing argument 1 of 'SerialPutString' differ in signedness c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:163: warning: pointer targets in passing argument 1 of 'SerialPutString' differ in signedness c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:144: warning: return type of 'main' is not 'int' ********************** (These warnings were saved by RIDE in file "main.o.stderr.log".) 2. The messages given by RIDE before link failure are given below: ********************** /cygdrive/c/program files/gnuarm/bin/../lib/gcc/arm-elf/4.0.0/../../../../arm-elf/bin/ld: BFD 2.15 assertion fail ../../binutils-2.15/bfd/linker.c:619 c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x8): In function `IAP_Init': c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:48: undefined reference to `MRCC_DeInit' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0xc):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:50: undefined reference to `MRCC_WaitForOSC4MStartUp' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x20):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:54: undefined reference to `MRCC_HCLKConfig' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x28):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:56: undefined reference to `MRCC_CKTIMConfig' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x30):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:58: undefined reference to `MRCC_PCLKConfig' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x38):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:60: undefined reference to `CFG_FLASHBurstConfig' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x44):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:62: undefined reference to `MRCC_CKSYSConfig' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x50):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:66: undefined reference to `MRCC_PeripheralClockConfig' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x74):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:72: undefined reference to `GPIO_Init' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x90):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:76: undefined reference to `GPIO_Init' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0xdc):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:95: undefined reference to `UART_Init' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0xe8):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:97: undefined reference to `UART_Cmd' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0xf4):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:99: undefined reference to `GPIO0' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0xf8):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:99: undefined reference to `UART0' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x10c): In function `Push_Button_Read': c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:111: undefined reference to `GPIO_ReadBit' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x114):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:113: undefined reference to `GPIO1' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x128): In function `Push_Button_Config': c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:128: undefined reference to `MRCC_PeripheralClockConfig' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x148):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:133: undefined reference to `GPIO_Init' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x154):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:134: undefined reference to `GPIO1' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x15c): In function `main': c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:147: undefined reference to `debug' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x17c):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:156: undefined reference to `SerialPutString' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x184):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:157: undefined reference to `SerialPutString' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x190):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:158: undefined reference to `SerialPutString' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x198):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:159: undefined reference to `SerialPutString' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x1a0):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:160: undefined reference to `SerialPutString' c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x1a8):c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:161: more undefined references to `SerialPutString' follow c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.o(.text+0x1bc): In function `main': c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/main.c:164: undefined reference to `Main_Menu' collect2: ld returned 1 exit status ********************** (These warnings were saved by RIDE in file "str75x_bootloader.elf.stderr.log".) 3. Finally, here is what RIDE generated and saved to logfile "str75x_bootloader.elf.log": ********************** RIDE Log File, c:\ride\str75x_bootloader\flash_bootloader-an2078\str7xxiap\str75xdemo\project\ride\str75x_bootloader.elf.log Date : August 15, 2013 ; Time : August 15, 2013 12:18:41 pm Command Line: arm-elf-gcc -mcpu=arm7tdmi -Wl,-T -Xlinker "c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/str75x_bootloader.elf.ld" -nostartfiles -Wl,-Map -Xlinker "c:/ride/str75x_bootloader/flash_bootloader-an2078/str7xxiap/str75xdemo/project/ride/str75x_bootloader.map" Return Code : 0 (ERROR) ********************** I am hopeful that maybe someone in the forum would be able to guide me in working through this problem with my bootloader project. Hopefully I provided sufficient details so that criticism/suggestions can be offered. Of course, it further information is needed, I'll gladly provide it as best as I can. Thank you very much in advance :)

+1
0
-1
September 12, 2013 - 11:55am
Raisonance Support Team

Hello, Your software is outdated, and several problems have been fixed since. first of all, I suggest you to update to ride7 and the Rkit-ARM. you can find the download web page of this site. Just click on Products Downloads. Note that you should be under a valid support contract to activate the last release of the kit. Best regards,

+1
0
-1
November 7, 2013 - 12:11am
Guest

Finally back after a long delay. I updated the RIDE tool to Version 7.28.10.0075, and have successfully compiled the ST Micro Serial Bootloader (IAP). But when I load it in the STR750FV2 flash on the Reva daughtercard, it does run, but it does not download new code (.bin) into flash via Ymodem protocol like it should. I am wondering if anyone here has ever tried the ST Micro IAP with the STR750FV2 and was successful in loading their application code (.bin) over serial link with Hyperterminal or equivalent. I posted my problem on the ST Micro forum, but so far no one has responded. Here's the link to my post, in case anyone here is interested in reading the specifics of my particular issue. Thank you for any comments or suggestions.