Commit Graph

272 Commits (3fc39b51a49bdabb11e47d8032d4a2d3eed2a96f)

Author SHA1 Message Date
dinau 8503ccb7a3 LPC2368 [GCC_ARM, GCC_CR]:
1. Added: GCC_CR toolchain ID for LPC2368. (targets.py)
2. Modified: Startup codes for GCC_ARM and GCC_CR toolchain.
3. Verified: "ticker" and "basic" test program work well, so far.
(Fixed typo.)
2013-08-31 16:00:40 +09:00
dinau 7bcdf0b980 LPC2368 [GCC_ARM, GCC_CR]:
1. Added: GCC_CR toolchain ID for LPC2368. (targets.py)
2. Modified: Startup codes for GCC_ARM and GCC_CR toolchain.
3. Verified: "ticker" and "basic" test program works well, so far.
2013-08-31 13:33:34 +09:00
Adam Green 9e6d1683b8 gcc: Provide _sbrk implementation compatible with RTX
I verified that the hang issue I was seeing when building and running
the mbed official networking tests with GCC_ARM was related to this
issue reported on the mbed forums:
    http://mbed.org/forum/mbed/topic/3803/?page=1#comment-18934

If you are using the 4.7 2013q1 update of GCC_ARM or newer then it
will have a _sbrk() implementation which checks the new top of heap
pointer against the current thread SP, stack pointer.
See this GCC_ARM related thread for more information:
    https://answers.launchpad.net/gcc-arm-embedded/+question/218972
When using RTX RTOS threads, the thread's stack pointer can easily
point to an address which is below the current top of heap so this
check will incorrectly fail the allocation.

I have added a _sbrk() implementation to the mbed SDK which checks the
heap pointer against the MSP instead of the current thread SP.  I have
only enabled this for TOOLCHAIN_GCC_ARM as this is the only GCC based
toolchain that I am sure requires this.
2013-08-30 18:15:25 -07:00
Bogdan Marinescu 1798920cf4 Merge remote-tracking branch 'github/master' 2013-08-30 12:26:37 +03:00
Bogdan Marinescu e870a90ff2 Added toolchain hooks and support for LPC4088_EA binary generation
A new hooks mechanism (hooks.py) allows various targets to customize
part(s) of the build process. This was implemented to allow generation of
custom binary images for the EA LPC4088 target, but it should be generic
enough to allow other such customizations in the future. For now, only the
'binary' step is hooked in toolchains/arm.py.
2013-08-30 12:19:08 +03:00
dinau 841ce1d719 Fixed: The issue of interrupt vector remapping for GCC_ARM LPC1114 2013-08-29 21:40:57 +09:00
dinau 97d92789ec Fixed: The issue of interrupt vector remapping for GCC_ARM LPC1114 2013-08-28 23:29:16 +09:00
Bogdan Marinescu 2cdd41d9b1 Added support for LPC11U24/_301 and LPC11U35_401 in uARM 2013-08-27 15:31:47 +03:00
Bogdan Marinescu 9a270999d0 Added support for LPC11U35_401 in ARM and GCC_ARM 2013-08-27 15:19:01 +03:00
Bogdan Marinescu 1c23d68281 Added support for LPC11U24_301/401 compilation with ARM toolchain 2013-08-27 14:52:39 +03:00
ytsuboi 2e549668a8 [LPC810] fixed scatter file 2013-08-24 16:02:03 +09:00
ytsuboi 8dd6bdb701 [LPC810] add LPC810 support 2013-08-24 15:49:16 +09:00
ytsuboi 4c0b5ab404 [LPC1114] fixed to use IRC and System PLL clock 2013-08-21 20:44:31 +09:00
Toyomasa Watarai 1ff64de847 Fixed gpio_irq_api bugs
Corrected improper implementation of channel_ids[] usage.
Revemod redundant arrays e.g. pin_names[] and trigger_events[]
2013-08-21 16:46:03 +09:00
Toyomasa Watarai 10e30b5cfb Fixed error handling and cleanup 2013-08-21 10:46:37 +09:00
Bogdan Marinescu 15ed7ea66a Fix bug in Ticker code
The bug was introduced by the interrupt chaining code.
2013-08-16 15:55:24 +03:00
ytsuboi 478f0498e7 Merge remote-tracking branch 'upstream/master' 2013-08-16 02:38:42 +09:00
Toyomasa Watarai 1d1c8c6391 Removed SWCLK and SWDIO pins from pinmap 2013-08-16 00:17:52 +09:00
Adam Green 28a3466d11 Fixups to network code after recent merges.
Peter's and my changes to LPC1768.ld ended up adding the same AHBSRAM0
and AHBSRAM1 section clauses to the script twice.  I removed one copy.

I also pulled Peter's define of the ETHMEM_SECTION macro up into the
previous nested #if so that the preprocessor wouldn't spit out a
redefined macro warning.

I verified that building the code clean before and after these changes
still results in the same .bin file but now without warnings and/or
duplicate code.
2013-08-15 04:40:53 -07:00
Bogdan Marinescu 370b270848 Merge pull request #30 from pbrier/master
Experimental fix for issue #29
2013-08-15 03:24:36 -07:00
Bogdan Marinescu 9d846d9902 Merge pull request #31 from adamgreen/gccWarnFixNetwork
Update LPC1768 linker script and silence GNU warnings in network stack
2013-08-15 02:55:51 -07:00
Adam Green aa7a55b6dd Update LPC1768.ld linker script to work with net stack.
The original script assigned memory ranges to USB_RAM and ETH_RAM but
it never placed any section data in those regions.  I added clauses
towards the bottom of the script to place data that the programmer
has marked for the AHBSRAM0 and AHBSRAM1 sections into these regions
of RAM.  Previously the data destined for these sections was being
placed in the lower 32K RAM bank and overflowing it at link time.

I also added a few Image$$ linker symbols to mimic those used by the
online compiler.  I have had samples in the past which took advantage
of these to display static memory statistics for each SRAM region.

I also changed LENGTH=0x7F38 to LENGTH=(32K - 0xC8) to make it more
consistent with the sizing of the other regions in this script which
use human readable K sizing information.  The 0xC8 subtraction reflects
the starting offset of 0xC8 for this region.
2013-08-14 20:17:53 -07:00
pbrier 9011a5453a Compile network and RTOS with GCC_ARM 2013-08-14 22:45:55 +02:00
pbrier c0fdbede02 Compile network and RTOS with GCC_ARM 2013-08-14 22:34:33 +02:00
0xc0170 3d9be83e38 Chaining in Ticker - switched arguments [fix] 2013-08-14 18:22:30 +02:00
Toyomasa Watarai 9f2a930f31 Fixed GPIO read operation 2013-08-14 22:43:03 +09:00
Toyomasa Watarai b632d8db46 Removed redundant code in serial_api 2013-08-14 22:29:31 +09:00
Toyomasa Watarai 83e065d1bc Fixed missing mask register setting for I2C 2013-08-14 22:28:30 +09:00
0xc0170 4cbbf8f274 Update eth_static_mac_address from mbed master 2013-08-14 07:29:56 +02:00
0xc0170 74a34c842d default mbed interface for ethernet
- correction in macros, renamimg
2013-08-13 21:49:04 +02:00
Adam Green 692e666ced Silence signed/unsigned comparison warnings in GCC.
i2c_frequency() compares a uint32_t ref variable to the int hz
function parameter passed in by the caller.  I forced this to be an
uint32_t comparison.

i2c_slave_write() declared i and count variables to be of type uint32_t
but used them as int type throughout the code (in comparisons and
returns) so I switched them to be of signed int type.

spi_frequency() contains a change similar to that made in
i2c_frequency().
2013-08-13 01:47:20 -07:00
Adam Green 461a3dd0d2 Cast to matching enumeration type instead of uint32_t
This commit targets the KL25Z code, whereas previous ones targetted
similar issues in the LPC1768 and LPC11U24 mbed HAL code.

These changes were made to silence GCC warnings and fix potential bugs
where they would never be equal when the enumeration wasn't a 32-bit
type.

For example, pinmap.c used to contain this code:
    if (pin == (uint32_t)NC) return;
I switched it to:
    if (pin == (PinName)NC) return;

I wonder why this casting to uint32_t was done in the first place?
Maybe another supported compiler requires it?
2013-08-13 01:47:20 -07:00
Adam Green cc56997a70 Cast to matching enumeration type instead of uint32_t
This commit targets the LPC11U24 code, whereas a previous one
targetted similar issues in the LPC1768 mbed HAL code.

These changes were made to silence GCC warnings and fix potential bugs
where they would never be equal when the enumeration wasn't a 32-bit
type.

For example, pinmap.c used to contain this code:
    if (pin == (uint32_t)NC) return;
I switched it to:
    if (pin == (PinName)NC) return;

I wonder why this casting to uint32_t was done in the first place?
Maybe another supported compiler requires it?
2013-08-13 01:47:19 -07:00
Adam Green 8fe7276b98 Silence signed/unsigned comparison warnings in GCC.
Why do the wait APIs take a signed integer if they are going to be
compared to unsigned quantities?
2013-08-13 01:47:19 -07:00
Adam Green c411823656 Fix operator precedence warning in can_api.c
The original code was:
    if(LPC_CAN1->IER | LPC_CAN2->IER != 0) {

This would actually be interpreted as:
    if(LPC_CAN1->IER | (LPC_CAN2->IER != 0)) {
I simplified it to:
    if(LPC_CAN1->IER | LPC_CAN2->IER) {
With the comparison removed, the GCC warning no longer fires since the
user's intent is no longer unclear.  However, the end result should be
the same.
2013-08-13 01:47:19 -07:00
Adam Green 15f833bc1b Cast to matching enumeration type instead of uint32_t
These were done to silence GCC warnings and fix potential bugs where
they would never be equal when the enumeration wasn't a 32-bit type.

For example, common/pinmap_common.c used to contain this code:
    if (pin == (uint32_t)NC)
I switched it to:
    if (pin == (PinName)NC)

I wonder why this casting to uint32_t was done in the first place?
Maybe another supported compiler requires it?
2013-08-13 01:47:19 -07:00
Bogdan Marinescu 1a47a218a4 [KL25Z] Fixed counter type for i2c_read operations. 2013-08-12 12:31:05 +03:00
Emilio Monti 0843613136 Add LPC11U24/301 TARGET 2013-08-09 17:21:03 +01:00
Andreas Rebert 75dba19438 Updated pin mapping and CAN HAL for LPC4088 target 2013-08-08 13:57:02 +02:00
Bogdan Marinescu 3b465de3aa Changed line endings to LF, removed non-ASCII chars from sources 2013-08-08 12:58:34 +03:00
Bogdan Marinescu 3f703f1bf0 [LPC11C24] Make code compatible with the interrupt chaining code 2013-08-07 15:24:30 +03:00
Bogdan Marinescu 9ee1fc9f55 [KL25Z] Fix I2C issue related to the silicon errata.
Makes a difference when running the I2C EEPROM test at 400KHz, which has a 100%
success rate after this change.
2013-08-07 14:49:11 +03:00
Bogdan Marinescu 6c05438993 Interrupt chaining: added documentation, fixed a synchronization issue in CallChain. 2013-08-07 14:46:40 +03:00
Bogdan Marinescu d399e51bfd Interrupt chaining: now working on all targets.
Tested on LPC1768, LPC11U24, KL25Z, LPC2368.
2013-08-07 14:43:36 +03:00
Bogdan Marinescu 43d4445074 Interrupt chaining: preliminary version 2013-08-07 14:43:26 +03:00
Bogdan Marinescu 1e8e50996c [KL25Z] Restore full SPI pin mappings 2013-08-07 14:42:02 +03:00
Bogdan Marinescu 58fd85fc6f Add support for calling a function before main()
The name of the function is mbed_main.
Fixes PRMBED-906.
2013-08-07 14:39:13 +03:00
Emilio Monti 1142df8cfd Merge pull request #22 from matthewelse/anotherpullrequest
PWM Patch Pull Request
2013-08-07 02:20:51 -07:00
Matthew Else e1eb357c53 Added changes to PWM API from LPC1114 to LPC11C24 2013-08-07 09:45:47 +01:00
Matthew Else b437a3ca22 Removed can_api.c from TARGET_LPC11CXX, as it's not ready for pull request yet. 2013-08-07 09:43:28 +01:00
Toyomasa Watarai 0c0b51f663 Fixed pwm_api bug
Corrected pwm_timer_map table for LPC1114
2013-08-07 16:24:58 +09:00
0xc0170 6127ed3bb7 KL25Z adc channels A
- only channels B were available
2013-08-06 21:21:03 +02:00
Matthew Else 548d18ebd7 Pull in changes to the main mbed code base. 2013-08-06 20:04:32 +01:00
Matthew Else d29ebefbd9 Begin to add can_api.c to LPC11C24 codebase. Not complete yet, which is why it's #if 0ed out. Lots of build errors come up if #if0 isn't there, which is why it is for now. 2013-08-06 17:41:31 +01:00
Emilio Monti e42786649f The LPC1347 board does not have an interface chip 2013-08-06 16:36:03 +01:00
Matthew Else 45470aba31 Updated READMEs 2013-08-06 15:09:41 +01:00
Matthew Else 4401516f14 Removed unnecessary core_cm* files, as they are now shared in cmsis 2013-08-06 15:06:28 +01:00
Matthew Else bf02700a32 Merge https://github.com/jorisa/mbed 2013-08-06 09:43:52 +01:00
Matthew Else f7a2be4bed Merge remote-tracking branch 'upstream/master' 2013-08-06 09:42:09 +01:00
Joris Aerts c747e2533f Rename some argument and enum names to match existing naming
Add CAN->mode(Mode mode) function (not implemented in hal)
2013-08-05 17:28:27 -07:00
emilmont 4f03cd09b8 Remove undefined peripherals 2013-08-05 22:09:32 +01:00
0xc0170 e1af24c1f2 Spaces correction 2013-08-05 19:06:22 +02:00
Matthew Else ef28879863 Merged remote tracking branch 'upstream/master' 2013-08-05 17:22:01 +01:00
Matthew Else 2c45596673 Merge https://github.com/jorisa/mbed 2013-08-05 17:11:58 +01:00
Matthew Else 7c8c7228c8 Pushed LPC1114 I2C updates to the LPC11C24 2013-08-05 17:09:22 +01:00
0xc0170 3c0775f5c3 More pin mux options for KL25Z
- as reported in mbed bug section, add all available mux options
2013-08-04 21:33:06 +02:00
0xc0170 e993e94886 Update kl25z_gcc_arm branch to latest master 2013-08-04 19:21:04 +02:00
0xc0170 08beebcd83 RAM region shifted by 0xC0 for vectors 2013-08-02 22:32:41 +02:00
0xc0170 0d6bec9d8c LD - space reserved for vectors in RAM 2013-08-02 21:08:29 +02:00
Emilio Monti 8562b3660b Add LPC1347 export templates. Cleanup GCC toolchain check. 2013-08-02 17:56:11 +01:00
0xc0170 48ee225d1f vectors and flash protection area are separated 2013-08-02 18:01:49 +02:00
Emilio Monti 54893092c3 Merge pull request #17 from matthewelse/forpullrequest
LPC1114 Port Pull Request
2013-08-02 08:56:44 -07:00
matthewelse 7827d62504 Added alternative DIP package names for pins in the LPC1114
Added this so it is consistent with the notebook page.
2013-08-02 10:38:05 +01:00
0xc0170 afab75fd01 only one flash memory (FLASH) 2013-08-02 07:14:36 +02:00
Joris Aerts f685efa9b2 Merge remote-tracking branch 'upstream/master' 2013-08-01 17:24:20 -07:00
Matthew Else 789f81b1ea Removed extra core_* files that are no longer needed. Makes Emilio more happy. 2013-08-01 22:54:52 +01:00
Matthew Else d899612525 Merge branch 'forpullrequest' 2013-08-01 16:25:28 +01:00
Matthew Else 0f7ece02a8 Fixed I2C API 2013-08-01 16:23:13 +01:00
Matthew Else df5c36a9ae Uncommented i2c_wait_SI(obj), as it should not have been commented out. 2013-08-01 16:04:18 +01:00
Matthew Else dc68b76d0f Added timeout for i2c_stop in LPC1114 target. 2013-08-01 15:46:05 +01:00
Joris Aerts a16dc72272 Add @param documentation for new event parameter
Add clear irq to attach() template function
Call irq_handler for every interrupt set
2013-07-31 10:45:28 -07:00
Joris Aerts 63b2b271d1 Refactor CAN interrupt handling to LPC176X HAL implementation
Add handlers for other CAN interrupt events
Changed CAN private entities to protected
2013-07-31 07:26:32 -07:00
0xc0170 33c096c9d0 Initial version of a ld and a startup for KL25Z ARM GCC 2013-07-31 10:19:18 +02:00
Joris Aerts 8ef8aac36e Merge remote-tracking branch 'upstream/master' 2013-07-30 19:16:34 -07:00
Joris Aerts 51bfe267f4 Add can_t->index to struct and set it during can_init 2013-07-30 15:17:40 -07:00
Matthew Else 07cddbf038 Merge remote-tracking branch 'upstream/master' 2013-07-30 12:01:49 +01:00
Bogdan Marinescu df5a993197 __cxa_pure_virtual changes
- rename stdio.cpp to retarget.cpp, since it doesn't contain only stdio-related
  code
- move __cxa_pure_virtual from exit.c to retarget.cpp where it belongs.
2013-07-29 18:54:22 +03:00
Bogdan Marinescu 1cd95c2467 [KL25Z] Fix clock generation for I2C and SPI
Don't set a clock higher than the one requested for the I2C and SPI interfaces,
even if this setting is the closest to the requested one. This was causing
some issues with the EEPROM test and possibly other issues with the SPI SD test.
2013-07-29 18:20:04 +03:00
Bogdan Marinescu 48d41016cd Added armcc support for STM32F407 2013-07-29 18:15:04 +03:00
Bogdan Marinescu 5655d2fc2a Fix for the previous "change vector table relocation check" commit. 2013-07-29 18:13:38 +03:00
Bogdan Marinescu beed7117ad Add __cxa_pure_virtual to avoid pulling in functions from the C++ library
Fixes PRMBED-859
2013-07-29 18:13:37 +03:00
Bogdan Marinescu 14409cd7fd Change the check for vector table relocation
Allows the user to specify his own VTOR location.
Fixes PRMBED-1065.
2013-07-29 18:13:37 +03:00
matthewelse 429d2e61eb Enabled CAN for LPC11CXX in device.h 2013-07-29 10:59:18 +01:00
Matthew Else 200b263dcd Added basic stuff necessary to compile for LPC11C24 target. 2013-07-27 18:12:35 +01:00
ytsuboi a9f0d9a3f7 [LPC1114]: uARM fixed
Tested with only "[ 32] MBED_11: Ticker"
2013-07-27 02:06:12 +09:00
Matthew Else 8c2ede6f4f Merge remote-tracking branch 'upstream/master' 2013-07-26 15:50:59 +01:00
Emilio Monti 5f0bd9d283 Update ARM toolchain symbols 2013-07-26 15:49:00 +01:00
Matthew Else 153153f261 Added serial_break_clear/serial_break_set
Fixes #24
2013-07-26 11:44:09 +01:00
Matthew Else 3172fd97ca Fix both edge bug in gpio_irq_api.c
Fixes #22
2013-07-26 09:41:20 +01:00
Matthew Else a356553c7d Fixed incorrect use of static in port_api.c
This was causing errors when compiling in GCC_ARM
2013-07-25 16:01:45 +01:00