Hi
1.Do we have working port of freeRTOS to RH850 ?
2.Do we have any document that describes porting steps such as creating startup code, configuring tick timer interrupts, stack and so on… ?
Many Thanks,
Pr
Hi
1.Do we have working port of freeRTOS to RH850 ?
2.Do we have any document that describes porting steps such as creating startup code, configuring tick timer interrupts, stack and so on… ?
Many Thanks,
Pr
Hi,
We dont have an officially supported for Renesas RH850, however you can find contributions to this port in forum post here:
Hi
Thank you for the pointers , can you share path to a downloadable version of this v10.4 that contains port for Renesas RH850 ? We could find it elsewhere
also, if we take latest n greatest version of the freertos , is this port of renesas rh850 still exist as a standard part of the supported micros?
Especially this is of relevance when we get success with v10.4 and want to migrate to latest freertos
Thanks,
Pra
Not sure if this is the same pointer Ravi provided one post above the last, just in a different thread: FreeRTOS Ported to RH850
There isn’t an RH850 in the “officially supported ports” as defined here - Officially supported and contributed FreeRTOS code - some definitions - but if there is a need and interest we could look at including one under one of the third party contributed categories - defined on the same page.
hi
Thanks for the reply
For now we need proving freertos kernel on our Renesas RH850 target and do what it takes to get a stable port. We are also unsure as to whether we should build on a freertos version that had earlier ben proven on RH850 ( that is V10.4) or take a route with picking up latest kernel versions.
Regards,
Pra
Hi,
Is the freeRTOS port to RH850 compliant to be native POSIX ? Or if we want to make it POSIX styled do we need to re work on this port?
Thanks
FreeRTOS does not natively use the POSIX threading API, but there is a wrapper that implements a subset of POSIX threading calls on top of FreeRTOS. The wrapper is not complete or regularly tested though.
Hi ,
I am using rh850 micrcontroller and I have ported this FreeRTOS
I have created a 3 UART Tasks which send data on UART.
In that I have used a vTaskDelay() function, code gets stuck in that function and never comes out of that
Can you please provide help in these ?
Hi @keyur_khatri
Can you provide your complete code ? Is it possible to attach a debugger and see where the code is stuck inside vTaskDelay() ? Do you have configASSERT
defined? Also ensure that the system tick timer is configured correctly and the tick interrupt is firing.
Thank for response.
Please check below attach image for reference where the code gets stuck
I have attached the RTOS code on which i am working.
Please check that code and help me if possible
RH850_RTOS.zip (3.2 MB)
You likely need to update your boot.asm file and install vPortYield as TRAP0 handler. Try to update the vector table in the boot.asm file to the following:
;-----------------------------------------------------------------------------
; exception vector table
;-----------------------------------------------------------------------------
.section "RESET", text
.align 512
jr32 __start ; RESET
.align 16
syncp
jr32 _Dummy ; SYSERR
.align 16
jr32 _Dummy
.align 16
jr32 _Dummy ; FETRAP
.align 16
jr32 vPortYield ; TRAP0 - Install vPortYield as TRAP0 handler.
.align 16
jr32 _Dummy_EI ; TRAP1
.align 16
jr32 _Dummy ; RIE
.align 16
syncp
jr32 _Dummy_EI ; FPE/FXE
.align 16
jr32 _Dummy ; UCPOP
.align 16
jr32 _Dummy ; MIP/MDP
.align 16
jr32 _Dummy ; PIE
.align 16
jr32 _Dummy
.align 16
jr32 _Dummy ; MAE
.align 16
jr32 _Dummy
.align 16
syncp
jr32 _Dummy ; FENMI
.align 16
syncp
jr32 _Dummy ; FEINT
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority0)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority1)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority2)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority3)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority4)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority5)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority6)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority7)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority8)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority9)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority10)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority11)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority12)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority13)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority14)
.align 16
syncp
jr32 _Dummy_EI ; INTn(priority15)
.section "EIINTTBL", const
.align 512
.dw #_Dummy_EI ; INT0
.dw #_Dummy_EI ; INT1
.dw #_Dummy_EI ; INT2
.rept 2048 - 3
.dw #_Dummy_EI ; INTn
.endm
.section ".text", text
.align 2
_Dummy:
br _Dummy
_Dummy_EI:
br _Dummy_EI
Thanks for response I am able to see the the improvement here now it is not gets stuck in vTaskDelay function.
But when it goes to execute UART task 3 then it got stuck in vPortFree function.
Kindly check the attached image for reference
You are using heap_1 which does not allow freeing memory. Switch to heap_4 instead.
Thanks for the response. Now it is working correctly and task is executing properly
Appreciate your genuine Response @aggarg
Thankyou