Stop the FreeRTOS demo with MIPS32

gwonos wrote on Tuesday, March 13, 2018:

Hi.

I want porting a FreeRTOS in mips, and try it.

I using a FreeRTOS demo(MIPS32/GCC ver) but it was not work.

The source file downloaded in Sram, it work.

But when it downloaded in Flash memory, it dosn’t work…

I check the flow of source code using Codescape debugger, i find that core check the "__first_boot " data.
If __first_boot data is valid (0x00000001), it work normaly (in sram)

else, __first_boot data is clear(0x00000000), it dosn’t work, according that “_exception_save” -> “_exception_handle_verbose” (or _exception_handle_quiet) -> mips_excpt_handler .c ->
uhi_indirect (sdbbp instruction) flows.

If sram, download using RTOSDemo.elf file, the __first_boot data was set.

But this address is over the source code range, binary file for download to Flash memory is not contain this value.

What is a problem in this project?

If not set the __first_boot data, the FreeRTOS is work?

That case, why stop my FreeRTOS source?

Or, FreeRTOS needed the valid __first_boot data, why my project has 0 data in __first_boot address??

Thanks you.

rtel wrote on Tuesday, March 13, 2018:

I’m afraid I’m not familiar with the project you are using. Where did you get it from?

gwonos wrote on Saturday, March 17, 2018:

I get this Demo from the freertos site,
this FreeRTOS ver. is 8.2.1

When the start this Demo project, this porject check the some address data.

This address is changed by binary code size.

this address always over the final code address.

if each end of code size is 0x8000, 0x 7000, 0x 6000.

checked data address is 0x8500. 0x7600, 0x6400.
(added size is not fixed)

this address shows the" first_boot" in the codescape debugger.

if the download the Demo to ram area using .elf file and codescape debbuger, the first_boot data is 0x1.

but first_boot address is over the binary code area, so this .hex or .bin files not include first_boot.

and download the Demo to serial flash using .bin file, the first_boot data is not change, so this project stop…

what is first_boot??

how to ignore the check of first_boot?

thanks.

gwonos wrote on Saturday, March 17, 2018:

FreeRTOS 8.2.1 - MIPS32-GCC is not valid project??

rtel wrote on Saturday, March 17, 2018:

This is a link to the V8.2.1 tag in SVN:
https://sourceforge.net/p/freertos/code/HEAD/tree/tags/V8.2.1/

Please provide a link to the code within that tag that you are talking
about so we can try and help.

gwonos wrote on Monday, March 19, 2018:

I found that :

https://interactive.freertos.org/hc/en-us/community/posts/210030026-FreeRTOS-8-2-1-for-MIPS32-processor-cores
in this page

and download link :
https://interactive.freertos.org/attachments/token/Wz0XPNEgmd9AtV3VugFeFpca0/?name=FreeRTOS-8.2.1-mips32-21Oct2015.zip

thanks.

rtel wrote on Monday, March 19, 2018:

Unfortunately these are not official FreeRTOS port, but third party
ports. We can only offer best effort support for third party ports, and
in this case, you are asking about something in the start up process
which is both device and probably tool specific. It would take several
hours if not days to familiarize ourselves with the port and environment
in order to be able to make any suggestions. I would recommend
contacting the port’s creator.

https://www.freertos.org/RTOS-contributed-ports.html
https://www.freertos.org/differences-between-officially-supported-and-contributed-FreeRTOS-code.html

gwonos wrote on Friday, March 23, 2018:

thanks for your reply.

well, how can i port the FreeRTOS in the MIPS core using official project?

I don’t know that waht Demo project is portable the MIPS.

PIC32 is hard to port outer MIPS processor becaus the .ld file.

and, i find that problem of my project is occure ih the interrupt sequence.

skip the start part(with problem area), the MIPS with FreeRTOS is work normaly.
but interrupts occure same stop problems.

: exception_handle -> exception_save -> uhi_indirect and software breakpoint(sdbbp)

can i delete uhi sequece in the FreeRTOS??
i don’t know why UHI occure that problem.
and, i was checked that interrupt worked normaly in the normal firmware(not FreeRTOS).

the best method is that port in the mipscore using official FreeRTOS…myself.

thanks

rtel wrote on Friday, March 23, 2018:

You may be able to use one of the PIC32 ports if you are using the same
core that the PIC32 part is. The ld file just describes the memory
layout for the part you are targeting. Otherwise you could ask the
person that posted the code.

tlafleur wrote on Friday, March 23, 2018:

You may also want to try using Microchip Harmony environment for the PIC32
as it has FreeRTOS build in as a supported OS.

~~ _/) _/) _/) ``` _/) ~~

Tom Lafleur

On Fri, Mar 23, 2018 at 7:51 AM, Richard Barry rtel@users.sourceforge.net
wrote:

You may be able to use one of the PIC32 ports if you are using the same
core that the PIC32 part is. The ld file just describes the memory
layout for the part you are targeting. Otherwise you could ask the
person that posted the code.

Stop the FreeRTOS demo with MIPS32
https://sourceforge.net/p/freertos/discussion/382005/thread/5670434a/?limit=25#1643/2959/2c4b/429b/ae22/f7e8/f8ff/562a

Sent from sourceforge.net because you indicated interest in
https://sourceforge.net/p/freertos/discussion/382005/

To unsubscribe from further messages, please visit
https://sourceforge.net/auth/subscriptions/

gwonos wrote on Sunday, March 25, 2018:

i try the PIC32 elf file changed hex and binary file, but it fail…
the changed binary file size over the 600Mbyte.
i use the tool of MPLAB x IDE, and p32mz2048ech100.h in wondows 10.

i’m not change this Demo file, it is a simple test of making binary file.

i post the link of my programing source (pic32 and MIPS32_GCC).

locate:

  • FreeRTOS-mips_gwonos/FreeRTOS/Demo/
    test_MIPS32_GCC_5_main_access_change_rom/
    or
    test_MIPS32_GCC_6_main_access_change_ram/

that is my used test of MIPS32_GCC sources.

(when the start exception_handler, accure sdbbp in uhi_indirect.c and stop)

https://drive.google.com/file/d/1_iOwodBYHvIP85FqJYiTQWHCmQV9tkga/view?usp=sharing

and, it is a log of working on the my MIPS board.

https://drive.google.com/open?id=1VRgJC1iWLcNFVL7SGlqOTKs49KnUrmrz

when the normal work is first_boot value is not 0.

otherwise, when the first_boot value is 0, the RTOS stop sdbbp of uhi_indirect.

this programs run exception entry area in the ram(address : 0x88000000).

thanks.