Hello,
RL78 port for YRPBRL78G13 Promotion Board is added in repository. At the moment there are no HAL drivers yet, so only led blinking as a demo is available.
Link to sources:
http://svn.code.sf.net/p/chibios/svn/branches/rl78_dev/
Regards,
lb
Renesas RL78 port
Moderators: lbednarz, DeusExMachina
- DeusExMachina
- Posts: 223
- Joined: Tue Apr 03, 2012 5:08 am
- Location: South Korea
- Has thanked: 3 times
- Been thanked: 3 times
Re: Renesas RL78 port
I used KPIT Cummins's toolchain. You can download one from http://www.kpitgnutools.com/,
and the demo project is for Code::Blocks only for now.
and the demo project is for Code::Blocks only for now.
- DeusExMachina
- Posts: 223
- Joined: Tue Apr 03, 2012 5:08 am
- Location: South Korea
- Has thanked: 3 times
- Been thanked: 3 times
Re: Renesas RL78 port
Unfortunatelly, my RL78 board is on the way It will be great to run standard Chibios tests and benchmarks to achive port information.
- DeusExMachina
- Posts: 223
- Joined: Tue Apr 03, 2012 5:08 am
- Location: South Korea
- Has thanked: 3 times
- Been thanked: 3 times
Re: Renesas RL78 port
I think that R5F100xE.ld script should be modified, esspecialy regarding ARM-related stuf
Code: Select all
.ARM.extab :
{
*(.ARM.extab* .gnu.linkonce.armextab.*)
} > flash
.ARM.exidx : {
PROVIDE(__exidx_start = .);
*(.ARM.exidx* .gnu.linkonce.armexidx.*)
PROVIDE(__exidx_end = .);
} > flash
Re: Renesas RL78 port
Right, ARM stuff is unnecessary.
Benchmarking will be possible when serial driver will be ready. I think it can be done within few days, then we'll know if everything works well.
Benchmarking will be possible when serial driver will be ready. I think it can be done within few days, then we'll know if everything works well.
Re: Renesas RL78 port
After a few fixes RL78 port is almost ready I think.
Sources will be updated after a little cleanup.
Here are the results of tests for comparison with other boards:
Sources will be updated after a little cleanup.
Here are the results of tests for comparison with other boards:
Code: Select all
*** ChibiOS/RT test suite
***
*** Kernel: 2.6.1
*** Compiled: Jan 12 2014 - 18:38:04
*** Compiler: GCC 4.8-GNURL78_v13.02 20131003 (MP1) (Red Hat/devo) [trunk revision 194496]
*** Architecture: RL78
*** Test Board: Renesas YRPBRL78G13
----------------------------------------------------------------------------
--- Test Case 1.1 (Threads, enqueuing test #1)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.2 (Threads, enqueuing test #2)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.3 (Threads, priority change)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.4 (Binary Semaphores, functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.2 (Mutexes, priority inheritance, simple case)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.3 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.4 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.5 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.6 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.7 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.8 (CondVar, boost test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 4.1 (Messages, loop)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.1 (Events, registration and dispatch)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.3 (Events, timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.1 (Queues, input queues)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.2 (Queues, output queues)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.1 (Benchmark, messages #1)
--- Score : 16470 msgs/S, 32940 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.2 (Benchmark, messages #2)
--- Score : 236 msgs/S, 472 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.3 (Benchmark, messages #3)
--- Score : 236 msgs/S, 472 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.4 (Benchmark, context switch)
--- Score : 280760 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.5 (Benchmark, threads, full cycle)
--- Score : 49765 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.6 (Benchmark, threads, create only)
--- Score : 67157 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)
--- Score : 20918 reschedules/S, 125508 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.8 (Benchmark, round robin context switching)
--- Score : 156180 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.9 (Benchmark, I/O Queues throughput)
--- Score : 224064 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.10 (Benchmark, virtual timers set/reset)
--- Score : 220766 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.11 (Benchmark, semaphores wait/signal)
--- Score : 338472 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.12 (Benchmark, mutexes lock/unlock)
--- Score : 256744 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.13 (Benchmark, RAM footprint)
--- System: 310 bytes
--- Thread: 36 bytes
--- Timer : 10 bytes
--- Semaph: 6 bytes
--- EventS: 2 bytes
--- EventL: 6 bytes
--- Mutex : 8 bytes
--- CondV.: 4 bytes
--- Queue : 18 bytes
--- MailB.: 20 bytes
--- Result: SUCCESS
----------------------------------------------------------------------------
Final result: SUCCESS
- Giovanni
- Site Admin
- Posts: 14486
- Joined: Wed May 27, 2009 8:48 am
- Location: Salerno, Italy
- Has thanked: 1088 times
- Been thanked: 928 times
- Contact:
Re: Renesas RL78 port
Good job!
The context switch is not bad but 11.2 and 11.3 seems to be unusually low, this could be a compiler problem. Is the compiler a GCC derivative?
Giovanni
The context switch is not bad but 11.2 and 11.3 seems to be unusually low, this could be a compiler problem. Is the compiler a GCC derivative?
Giovanni
Re: Renesas RL78 port
Thanks
I've also noticed that 11.2 and 11.3 much differ from 11.1, but I don't know yet why. These should be comparable, right?
I'm using GCC toolchain from KPIT Cummins and optimizer option -Os.
lb
I've also noticed that 11.2 and 11.3 much differ from 11.1, but I don't know yet why. These should be comparable, right?
I'm using GCC toolchain from KPIT Cummins and optimizer option -Os.
lb
- Giovanni
- Site Admin
- Posts: 14486
- Joined: Wed May 27, 2009 8:48 am
- Location: Salerno, Italy
- Has thanked: 1088 times
- Been thanked: 928 times
- Contact:
Re: Renesas RL78 port
Just an hypothesis it would be an hell of compiler problem resulting in a 100x slower score
It could be something like an integer overflow somewhere, even in the test code, resulting in a truncated result.
Giovanni
It could be something like an integer overflow somewhere, even in the test code, resulting in a truncated result.
Giovanni
Who is online
Users browsing this forum: No registered users and 1 guest