Another interesting Discovery kit from ST

This forum is dedicated to feedback, discussions about ongoing or future developments, ideas and suggestions regarding the ChibiOS projects are welcome. This forum is NOT for support.
mabl
Posts: 417
Joined: Tue Dec 21, 2010 10:19 am
Location: Karlsruhe, Germany
Been thanked: 1 time
Contact:

Re: Another interesting Discovery kit from ST

Postby mabl » Wed Oct 19, 2011 9:30 pm

Today I also got my F4 discovery board. Will see how to program it under Linux. At the moment it looks like it still has some problems: https://github.com/texane/stlink/issues/10

arsenix
Posts: 5
Joined: Wed Oct 26, 2011 1:14 am

Re: Another interesting Discovery kit from ST

Postby arsenix » Wed Oct 26, 2011 1:16 am

You should check out versaloon to program these. Use windows/stlink to flash versaloon onto the small micro on the discovery board... then you are good to go using open tools that work under windows/linux/mac! Googling around will get you instructions... it is similar to the other discovery boards and is only a tiny science fair.

Jacon
Posts: 139
Joined: Wed Dec 08, 2010 7:52 am
Has thanked: 41 times
Been thanked: 4 times

Re: Another interesting Discovery kit from ST

Postby Jacon » Thu Nov 03, 2011 8:42 pm

First support files just started to appear under trunk/boards/ST_STM32F4_DISCOVERY...
Giovanni moves ahead fast, as usual :)

Found some small bugs in board.h (excessive ")"'s and missing "|"'s in "Port C Setup"
section ) - rectified version below:

Code: Select all

#define VAL_GPIOC_MODER             (PIN_MODE_OUTPUT(GPIOC_OTG_FS_POWER_ON) |\
                                     PIN_MODE_INPUT(1) |                    \
                                     PIN_MODE_INPUT(2) |                    \
                                     PIN_MODE_ALTERNATE(GPIOC_DOUT) |       \
                                     PIN_MODE_INPUT(4) |                    \
                                     PIN_MODE_INPUT(5) |                    \
                                     PIN_MODE_INPUT(6) |                    \
                                     PIN_MODE_ALTERNATE(GPIOC_MCLK) |       \
                                     PIN_MODE_INPUT(8) |                    \
                                     PIN_MODE_INPUT(9) |                    \
                                     PIN_MODE_ALTERNATE(GPIOC_SCLK) |       \
                                     PIN_MODE_INPUT(11) |                   \
                                     PIN_MODE_ALTERNATE(GPIOC_SDIN) |       \
                                     PIN_MODE_INPUT(13) |                   \
                                     PIN_MODE_INPUT(14) |                   \
                                     PIN_MODE_INPUT(15))
#define VAL_GPIOC_OTYPER            0x00000000
#define VAL_GPIOC_OSPEEDR           0xFFFFFFFF
#define VAL_GPIOC_PUPDR             (PIN_PUDR_FLOATING(GPIOC_OTG_FS_POWER_ON) |\
                                     PIN_PUDR_PULLUP(1) |                   \
                                     PIN_PUDR_PULLUP(2) |                   \
                                     PIN_PUDR_FLOATING(GPIOC_DOUT)  |       \
                                     PIN_PUDR_PULLUP(4) |                   \
                                     PIN_PUDR_PULLUP(5) |                   \
                                     PIN_PUDR_PULLUP(6) |                   \
                                     PIN_PUDR_FLOATING(GPIOC_MCLK)  |       \
                                     PIN_PUDR_PULLUP(8) |                   \
                                     PIN_PUDR_PULLUP(9) |                   \
                                     PIN_PUDR_FLOATING(GPIOC_SCLK)  |       \
                                     PIN_PUDR_PULLUP(11) |                  \
                                     PIN_PUDR_FLOATING(GPIOC_SDIN)  |       \
                                     PIN_PUDR_PULLUP(13) |                  \
                                     PIN_PUDR_PULLUP(14) |                  \
                                     PIN_PUDR_PULLUP(15))
#define VAL_GPIOC_ODR               0xFFFFFFFF
#define VAL_GPIOC_AFRL              (PIN_AFIO_AF(3, 5) |                    \
                                     PIN_AFIO_AF(7, 6))
#define VAL_GPIOC_AFRH              (PIN_AFIO_AF(10, 6) |                   \
                                     PIN_AFIO_AF(12, 6))

User avatar
Giovanni
Site Admin
Posts: 13125
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 769 times
Been thanked: 653 times
Contact:

Re: Another interesting Discovery kit from ST

Postby Giovanni » Thu Nov 03, 2011 9:00 pm

Hi,

It is still work in progress :), I still have to receive the boards (I hope tomorrow so I could put the weekend to good use).

Giovanni

mabl
Posts: 417
Joined: Tue Dec 21, 2010 10:19 am
Location: Karlsruhe, Germany
Been thanked: 1 time
Contact:

Re: Another interesting Discovery kit from ST

Postby mabl » Thu Nov 03, 2011 10:17 pm

Jacon wrote:First support files just started to appear under trunk/boards/ST_STM32F4_DISCOVERY...
Giovanni moves ahead fast, as usual :)

I also noticed the new macros for IO definition. It's quite helpful I think. I have already spent to much time counting characters :mrgreen:

User avatar
Badger
Posts: 346
Joined: Mon Apr 18, 2011 6:07 pm
Location: Bath, UK
Contact:

Re: Another interesting Discovery kit from ST

Postby Badger » Fri Nov 04, 2011 9:26 am


User avatar
Giovanni
Site Admin
Posts: 13125
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 769 times
Been thanked: 653 times
Contact:

Re: Another interesting Discovery kit from ST

Postby Giovanni » Fri Nov 04, 2011 9:27 pm

The boards just arrived (Digikey), I hope to have everything working in the weekend. I also got an LPCXpresso 1769 and an Altera DE1, support for LPC176x and Nios II should follow.

Giovanni

User avatar
Giovanni
Site Admin
Posts: 13125
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 769 times
Been thanked: 653 times
Contact:

Re: Another interesting Discovery kit from ST

Postby Giovanni » Sun Nov 06, 2011 10:44 am

Hi,

The STM32F4-Discovery demo just reached the led-blinking capability level :-) (subversion revision 3474).

So far everything seems to be OK but the device drivers will have to be revalidated (and those using DMA need some tweaks too). Also note that the demo is currently using the CortexM3 port so there is no context switching for FPU registers.

Giovanni

User avatar
Giovanni
Site Admin
Posts: 13125
Joined: Wed May 27, 2009 8:48 am
Location: Salerno, Italy
Has thanked: 769 times
Been thanked: 653 times
Contact:

Re: Another interesting Discovery kit from ST

Postby Giovanni » Sun Nov 06, 2011 1:28 pm

Serial driver tested, tests executed successfully :-)

The scores for the fastest RTOS on the fastest Platform:

Code: Select all

*** ChibiOS/RT test suite
***
*** Kernel:       2.3.4unstable
*** Compiled:     Nov  6 2011 - 12:43:29
*** Compiler:     GCC 4.6.0
*** Architecture: ARMv7-M
*** Core Variant: Cortex-M3
*** Port Info:    Advanced kernel mode
*** Platform:     STM32F4 High Performance & DSP
*** Test Board:   ST STM32F4-Discovery

----------------------------------------------------------------------------
--- 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 7.1 (Heap, allocation and fragmentation test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 8.1 (Memory Pools, queue/dequeue)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 9.1 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 9.2 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 9.3 (Dynamic APIs, registry and references)
--- 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 : 756090 msgs/S, 1512180 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.2 (Benchmark, messages #2)
--- Score : 621671 msgs/S, 1243342 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.3 (Benchmark, messages #3)
--- Score : 621671 msgs/S, 1243342 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.4 (Benchmark, context switch)
--- Score : 2567560 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.5 (Benchmark, threads, full cycle)
--- Score : 452437 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.6 (Benchmark, threads, create only)
--- Score : 638228 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)
--- Score : 192887 reschedules/S, 1157322 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.8 (Benchmark, round robin context switching)
--- Score : 1367420 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.9 (Benchmark, I/O Queues throughput)
--- Score : 1844568 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.10 (Benchmark, virtual timers set/reset)
--- Score : 2151998 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.11 (Benchmark, semaphores wait/signal)
--- Score : 2685712 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.12 (Benchmark, mutexes lock/unlock)
--- Score : 1886020 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.13 (Benchmark, RAM footprint)
--- System: 376 bytes
--- Thread: 72 bytes
--- Timer : 20 bytes
--- Semaph: 12 bytes
--- EventS: 4 bytes
--- EventL: 12 bytes
--- Mutex : 16 bytes
--- CondV.: 8 bytes
--- Queue : 32 bytes
--- MailB.: 40 bytes
--- Result: SUCCESS
----------------------------------------------------------------------------

Final result: SUCCESS


Context switch in 0,38947 microseconds.

Giovanni

mabl
Posts: 417
Joined: Tue Dec 21, 2010 10:19 am
Location: Karlsruhe, Germany
Been thanked: 1 time
Contact:

Re: Another interesting Discovery kit from ST

Postby mabl » Sun Nov 06, 2011 2:30 pm

Those are stunning results! It completely blows the F103 out of the water. 2.6 MHz context switches... dear god.. :mrgreen:

How much impact will saving the FPU registers have? Might it be useful to have an option to disable the FPU?

Now, I imagine ChibiOS running on a Silica xynergy board once they release the F4 version. Maybe they send you a free sample of the boad? I could imagine them to be quite happy if ChibiOs would run on it out of the box :D


Return to “Development and Feedback”

Who is online

Users browsing this forum: No registered users and 7 guests