Commit Graph

3308 Commits (cbebd63a2cc18895ec8b43ac1abd0beed5625c9f)

Author SHA1 Message Date
Anders Lindvall cbebd63a2c Added LPC4088_DM HAL 2015-01-21 10:19:35 +01:00
Przemek Wirkus 0c3caf8d75 Refactored SD card basic test
Included return value check from fopen() functions in read/write testcases
2015-01-12 08:39:34 +00:00
Martin Kojtal 7a3d2b4423 Merge pull request #837 from bcostm/master
NUCLEO_F070RB - Update tests
2015-01-12 08:14:44 +00:00
Martin Kojtal 47725f9123 Merge pull request #835 from masaohamanaka/master
RZ_A1H - Fix some bugs about InterruptIn, SPI, I2C and modify some settings.
2015-01-12 08:14:02 +00:00
bcostm 321f012f06 [NUCLEO_F070RB] Add missing line (same as F072RB) 2015-01-09 11:32:49 +01:00
bcostm e0e18f54d6 [NUCLEO_F070RB] Update tests with this target 2015-01-09 11:21:15 +01:00
Masao Hamanaka 596d0e9b78 Commit upstream changes.
Commit upstream changes that is "Merge pull request #833"
2015-01-09 13:54:55 +09:00
Masao Hamanaka 4004624a1f Add comments.
Add comments to provide details about this code.
2015-01-09 13:50:41 +09:00
Przemek Wirkus 3ec2247713 K22F: added peripheral pin definitions to SD card tests and I2C EEPROM tests 2015-01-08 14:06:39 +00:00
Martin Kojtal 2acefb66eb Merge pull request #809 from bcostm/master
NUCLEO_F334R8 - Fix issue with multiple ADC initialization
2015-01-08 11:57:52 +00:00
Martin Kojtal bef46907fc Merge pull request #831 from ohagendorf/stm32f4xx_reorg_hal
STM32F4xx reorganisation of hal folder
2015-01-08 11:53:03 +00:00
Martin Kojtal 4f7fdf3ee4 Merge pull request #836 from ohagendorf/build_release
Tools: Add GCC_ARM toolchain to some Nucleo targets to build release script
2015-01-08 07:20:56 +00:00
Olaf Hagendorf 148a62ef81 [build_release.py]
Adding missing GCC_ARM toolchain to some Nucleo targets
2015-01-07 17:56:05 +01:00
Masao Hamanaka 90cf47ffdf Fix some bugs about IntreruptIn.
Bugs are as below.
- Add terminal setting of IRQ4 and IRQ6 that leaked.
- When set the interrupt function by rise()/fall(), the interrupt disable state will be released by disable_irq().
- Interrupt will be continued to occur when execute disable_irq() after rise(NULL)/fall(NULL) set.
- Fix the setting timing of PMC register.
2015-01-07 19:11:14 +09:00
Masao Hamanaka f119a368e5 Fix the bug that a noise will occur in SPI.
A noise will occur when execute frequency() after set the "mode" to 3 by format().
2015-01-07 19:10:49 +09:00
Masao Hamanaka b13b047a76 Implement a stop condition transmission setting function of I2C.
User can specify the sending of STOP condition by this implement.
2015-01-07 19:10:26 +09:00
Masao Hamanaka d469fdf79e Increase STACK size of thread. 2015-01-07 19:09:50 +09:00
Masao Hamanaka 808c3b4d7c Take measures about optimization problems of web compiler. 2015-01-07 19:09:22 +09:00
Martin Kojtal b6a514c8b2 Merge pull request #833 from ohagendorf/disco_f401_rtos
DISCO_F401VC - adding target to RTOS
2015-01-07 09:09:29 +00:00
Masao Hamanaka 0ed93c1953 Update scatter file to increase usable RAM area.
Remove a usable RAM area limit of RW and ZI area.
2015-01-07 13:04:49 +09:00
ohagendorf 24d7e37e21 all RTOS_x tests are OK 2015-01-06 20:48:37 +01:00
Martin Kojtal 245a60b29c Merge pull request #820 from ohagendorf/stm32f0xx_rtos
NUCLEO_F072RB/F091RC - adding target to rtos lib and exporter for coide and gcc_arm
2015-01-06 07:41:37 +01:00
ohagendorf 716c51d232 Deleting doubled files 2015-01-06 00:35:57 +01:00
ohagendorf 11c2a5b888 error correction rebas and build_travis extension
travis_build ok
all tests for nucleo_f0xx and nucleo_f3xx ok
2015-01-05 23:59:58 +01:00
ohagendorf f5c3b18d75 [NUCLEO_F091RC] adding exporter (gcc_arm, coide), enable rtos
- Adding exporter for CoIDE and GCC_ARM
- Adding target to RTOS lib
2015-01-05 22:55:18 +01:00
ohagendorf 5ebdb92e78 [NUCLEO_F072RB] adding target to rtos lib
Every test (DTCT_1, EXAMPLE_1, MBED_xx, RTOS_x) is OK.
2015-01-05 22:43:52 +01:00
bcostm f2a6eeca8d [NUCLEO_F334R8] Correct the code used during initialization 2015-01-05 14:47:38 +01:00
bcostm ad9b6a7119 Merge branch 'master' of https://github.com/mbedmicro/mbed 2015-01-05 14:14:41 +01:00
Martin Kojtal 914dd37b11 Merge pull request #818 from ohagendorf/stm32l053_rtos
DISCO/NUCLEO_L053xx - adding to RTOS, corrections for all tests, [DISCO_L053] exporter to µVision
2015-01-05 08:08:00 +01:00
Martin Kojtal 47ac39b3fd Merge pull request #812 from perkristian/master
RTOS: Fix stack alignment
2015-01-05 08:01:09 +01:00
Martin Kojtal e1309e658a Merge pull request #811 from albert361/master
Add IAR toolchain support for DISCO_F429ZI
2015-01-05 07:57:36 +01:00
Martin Kojtal 3aef1389d5 Merge pull request #829 from Kazu-zamasu/LPC824-GCC_CR
Tools: LPC824 -  GCC_CR support
2015-01-05 07:55:21 +01:00
Martin Kojtal fdc60ac217 Merge pull request #827 from adamgreen/rtxNoStackCheckForMainThread
RTOS: Main thread should not write MAGIC_WORD to stack
2015-01-05 07:50:23 +01:00
Martin Kojtal 5748a9da69 Merge pull request #826 from adamgreen/rtxSupportStacksLargerThan64k
RTX: Support stacks larger than 64k
2015-01-05 07:48:32 +01:00
Martin Kojtal ba69445765 Merge pull request #825 from ohagendorf/disco_f401
DISCO_F401VC - New target incl. exporter to gcc_arm and coide
2015-01-05 07:34:57 +01:00
ohagendorf f98dd149b9 [MTS_MDOT_F405RG] reorg hal folder
- reorganisation of this target needed some extension of serial_api.c
used by all F4xx tagets.
- add arch_max to travis_build
2015-01-04 14:15:16 +01:00
ohagendorf 0498e2619b [STMF4xx] reorg hal folder
- some minor error correction
- add pin definition for 3 tests (MBED_A5,6,7)
- add new target disco_f401vc to travis_build

travis_build and all test are OK except missing STM32F4 target
MTS_MDOT_F405RG
2015-01-04 14:14:52 +01:00
ohagendorf 3d886a94dc [MTS_DRAGONFLY_F411RE] reorg hal folder 2015-01-04 14:11:32 +01:00
ohagendorf 41975149c2 [DISCO_F407/ARCH_MAX] reorg hal folder 2015-01-04 14:11:03 +01:00
ohagendorf 3a2ec50d0e [DISCO_F429ZI] reorg hal folder 2015-01-04 14:10:34 +01:00
ohagendorf cf8c8689e6 [NUCLEO_F411][MTS_MDOT_F411] reorg of hal folder 2015-01-04 14:07:43 +01:00
ohagendorf 484d9359ba [DISCO/NUCLEO_F401xx] reorg of hal folder 2015-01-04 14:06:51 +01:00
kazu-zamasu b066ebff90 Add to GCC_CR
New create GCC_CR LPCXPresso export.
2015-01-04 12:02:01 +09:00
Adam Green 461403989c RTX: Main thread should not write MAGIC_WORD to stack
This is a fix for issue #285.  This fix is similar to that proposed by
@oresths in the original issue.

There is code in rt_init_stack() which compares the task_id against the
value of 1 before writing MAGIC_WORD to the bottom of the stack.  This
is supposed to stop the write from occurring for the main thread but
svcThreadCreate() doesn't initialize the P_TCB's task_id field until
after rt_init_stack() is executed.  If any dynamic memory allocation
has occurred before the main thread is started (from the standard C
startup code) then this write could overwrite data in that allocation.

This change:
* moves the task_id initialization in svcThreadCreate() to happen
  before the call to rt_init_context() is made.
* cleans up some comments in svcThreadCreate() which appear to
  reference older versions of the code which would automatically
  allocate stack memory if size == 0.
* still keeps the call to rt_dispatch() occurring after the call to
  rt_init_context() so that the task is not dispatched to the
  scheduler until the task fields have been populated.

I stepped through the rt_init_stack() code on my mbedLPC1768 after this
change was made to make sure that the write of MAGIC_WORD is now
skipped.
-----------------------------------------------------------------------
(gdb) break HAL_CM.c:95
Breakpoint 1 at 0x482c: file ../../external/mbed/libraries/rtos/rtx/TARGET_CORTEX_M/HAL_CM.c, line 95.
(gdb) c
Continuing.
Note: automatically using hardware breakpoints for read-only addresses.

Breakpoint 1, rt_init_stack (p_TCB=0x10000774 <os_idle_TCB>, task_body=0x4899 <os_idle_demon>)
    at ../../external/mbed/libraries/rtos/rtx/TARGET_CORTEX_M/HAL_CM.c:95
95	  if (p_TCB->task_id != 0x01)
(gdb) p *p_TCB
$1 = {
  cb_type = 0 '\000',
  state = 1 '\001',
  prio = 0 '\000',
  task_id = 255 '\377',
  p_lnk = 0x0 <_reclaim_reent>,
  p_rlnk = 0x0 <_reclaim_reent>,
  p_dlnk = 0x0 <_reclaim_reent>,
  p_blnk = 0x0 <_reclaim_reent>,
  delta_time = 0,
  interval_time = 0,
  events = 0,
  waits = 0,
  msg = 0x0 <_reclaim_reent>,
  stack_frame = 0 '\000',
  reserved = 0 '\000',
  priv_stack = 128,
  tsk_stack = 268437480,
  stack = 0x100007a8 <idle_task_stack>,
  ptask = 0x4899 <os_idle_demon>
}
(gdb) c
Continuing.

Breakpoint 1, rt_init_stack (p_TCB=0x10000120 <os_thread_def_main+16>, task_body=0x620d <__wrap_main()>)
    at ../../external/mbed/libraries/rtos/rtx/TARGET_CORTEX_M/HAL_CM.c:95
95	  if (p_TCB->task_id != 0x01)
(gdb) p *p_TCB
$2 = {
  cb_type = 0 '\000',
  state = 1 '\001',
  prio = 4 '\004',
  task_id = 1 '\001',
  p_lnk = 0x0 <_reclaim_reent>,
  p_rlnk = 0x0 <_reclaim_reent>,
  p_dlnk = 0x0 <_reclaim_reent>,
  p_blnk = 0x0 <_reclaim_reent>,
  delta_time = 0,
  interval_time = 0,
  events = 0,
  waits = 0,
  msg = 0x0 <_reclaim_reent>,
  stack_frame = 0 '\000',
  reserved = 0 '\000',
  priv_stack = 26968,
  tsk_stack = 268467136,
  stack = 0x100012a8,
  ptask = 0x620d <__wrap_main()>
}
(gdb) n
97	}

When the p_TCB for ptask==__wrap_main() is encountered, the task_id
now has a value of 1 and the write of MAGIC_WORD on line 96 is
skipped.
2015-01-02 17:24:48 -08:00
Adam Green d587474778 RTX: Support stacks larger than 64k
This issue was originally reported on the mbed site:
 http://developer.mbed.org/questions/5570/mbed-rtos-memory-utilization/

The cause of the 64k limitation is that even though the user can set a
stack size larger than 64k in the osThreadDef_t::stacksize 32-bit
field, this size is truncated to 16-bit when it is copied to
the priv_stack field in the OS_TCB structure.

This commit corrects that problem by making the OS_TCB::priv_stack
field 32-bit.  Due to word alignment, this introduces another 2 bytes
of padding in the structure which I have made explicit with the
addition of the reserved2 field.

The tsk_stack field which follows priv_stack is referenced directly by
assembly language code responsible for context switching.  This context
switching code used a fixed byte offset, TCB_TSTACK, to access this
tsk_stack field.  I had to update the TCB_TSTACK definition in various
locations from 36 to 40 to account for the extra alignment padding and
increased size of the priv_stack field.

TESTING
* GCC_ARM - mbedLPC1768 and mbedLPC11U24
* Online mbed Compiler - mbedLPC1768 and mbedLPC11U24

NOTES: I had to change assembly language code that was specific to IAR
       but I don't have that toolchain so those changes aren't tested.
       They do however follow the same pattern as the tested GCC
       modifications.
2015-01-02 13:14:40 -08:00
ohagendorf 43e6502f00 [DISCO_F401VC] new target incl. exporter to gcc_arm and coide 2015-01-02 19:09:41 +01:00
ohagendorf b9bef6b06e [DISCO/NUCLEO_L053xx] adding to RTOS - part3
Reverting the DEFAULT_STACK_SIZE changes in cmsis.oh.h and adding
changes to RTOS_x tests, to create threads with the neccessary reduced
stack sizes for these targets.
2015-01-02 14:52:39 +01:00
ohagendorf 11d7b0867a [DISCO_L053xx] exporter to µVision 2015-01-02 12:17:36 +01:00
ohagendorf ad6e208c7e [DISCO_L053xx] RTC LSE/LSI problem
The mcu STM32L053C8 seems to have a problem in the RCC - LSE hardware
block. The Disco_L053 don't have a 32kHz crystal connected to LSE port
pins in contrast to NUCLEO_L053.
During initialization the HAL tests if it can start the LSE oscillator.
The Flag LSERDY in RCC_CSR is set to 1 by RCC clock control when the
oscillator runs stable. Without a crystal the flag shouldn't be set and
the HAL trys to start the internal LSI oscillator.
But the flag is always set to 1 also without a crystal. That's why the
RTC doesn't start.
2015-01-02 12:17:35 +01:00
ohagendorf 32f5b97aa7 [DISCO_L053xx] wrong STDIO UART
Correction of a wrong stdio uart - some tests failed because of this.
2015-01-02 12:17:35 +01:00