Fork of mbed-src file paths change. LPC1114FN28 use only.

Fork of mbed-src by mbed official

Information

この情報は2013/10/28時点での解決方法です。
現在はmbed-src、標準ライブラリで問題なくコンパイルが可能です。

・使う物
LPC1114FN28
mbed SDK

LPC1114FN28でmbed-SDKのLibraryを使うとCompile出来ない。(2013/10/28) /media/uploads/minicube/mbed_lpc1114_sdk.png

パスが通ってないだけのようなのでファイルを以下に移動する。

mbed-src\targets\cmsis\TARGET_NXP\TARGET_LPC11XX_11CXX\
mbed-src\targets\cmsis\TARGET_NXP\TARGET_LPC11XX_11CXX\TARGET_LPC11XX\

にあるファイルをすべて

mbed-src\targets\cmsis\TARGET_NXP\

へ移動

mbed-src\targets\cmsis\TARGET_NXP\TARGET_LPC11XX_11CXX\にある

TOOLCHAIN_ARM_MICRO

をフォルダごと

mbed-src\targets\cmsis\TARGET_NXP\

へ移動

mbed-src\targets\hal\TARGET_NXP\TARGET_LPC11XX_11CXX\
mbed-src\targets\hal\TARGET_NXP\TARGET_LPC11XX_11CXX\TARGET_LPC11XX\

にあるファイルをすべて

mbed-src\targets\hal\TARGET_NXP\

へ移動

移動後は以下のような構成になると思います。
※不要なファイルは削除してあります。

/media/uploads/minicube/mbed_lpc1114_sdk_tree.png


ファイルの移動が面倒なので以下に本家からフォークしたライブラリを置いておきます。

Import librarymbed-src-LPC1114FN28

Fork of mbed-src file paths change. LPC1114FN28 use only.


エラーが出力される場合

"TOOLCHAIN_ARM_MICRO"が無いとエラーになる。

Error: Undefined symbol _initial_sp (referred from entry2.o).
Error: Undefined symbol _heap_base (referred from malloc.o).
Error: Undefined symbol _heap_limit (referred from malloc.o).

LPC1114FN28はMicrolibを使ってCompileされるため上記のエラーになるようです。

Revision:
43:b3acfef78949
Parent:
42:7ca0bbba899b
--- a/targets/hal/TARGET_NXP/TARGET_LPC43XX/README.txt	Sun Oct 27 16:30:04 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-mbed port to NXP LPC43xx
-========================
-Updated: 06/24/13
-
-The NXP LPC43xx microcontrollers are the first to include multiple Cortex-M
-cores in a single microcontroller package. This port allows mbed developers
-to take advantage of the LPC43xx in their application using APIs that they
-are familiar with. Some of the key features of the LPC43xx include:
-
-* Dual core ARM Cortex-M4/M0 both capable of up to 204 MHz
-* Up to 264 KB SRAM, 1 MB internal flash
-* Two High-speed USB 2.0 interfaces
-* Ethernet MAC
-* LCD interface
-* Quad-SPI Flash Interface (SPIFI)
-* State Configurable Timer (SCT)
-* Serial GPIO (SGPIO)
-* Up to 164 GPIO
-
-The NXP LPC18xx is a single core Cortex-M3 implementation that is compatible
-with the LPC43XX for cost-sensitive applications not requiring multiple cores.
-
-mbed port to the LPC43XX - Micromint USA <support@micromint.com>
-
-Compatibility
--------------
-* This port has been tested with the following boards:
-    Board                    MCU        RAM/Flash
-    Micromint Bambino 200    LPC4330    264K SRAM/4 MB SPIFI flash
-
-* Ethernet, USB and microSD filesystem drivers will be available when the
-  Bambino 200E is released.
-
-* This port uses offline toolchains. Development and testing has been done
-  mainly with the Keil MDK 4.70. Some testing has been done with IAR 6.5.
-  Eventually Keil, IAR and GCC CodeRed will be supported.
-
-* CMSIS-DAP debugging is not currently implemented. To debug use a JTAG.
-  The NXP DFU tool can be used for flash programming.
-
-* This port should support NXP LPC43XX and LPC18XX variants with a single
-  codebase. The core declaration specifies the binaries to be built:
-    mbed define      CMSIS define  MCU Target
-    __CORTEX_M4      CORE_M4       LPC43xx Cortex-M4
-    __CORTEX_M0      CORE_M0       LPC43xx Cortex-M0
-    __CORTEX_M3      CORE_M3       LPC18xx Cortex-M3
-  These MCUs all share the peripheral IP, common driver code is feasible.
-  Yet each variant can have different memory segments, peripherals, etc.
-  Plus, each board design can integrate different external peripherals
-  or interfaces. A future release of the mbed SDK and its build tools will
-  support specifying the target board when building binaries. At this time
-  building binaries for different targets requires an external project or
-  Makefile.
-
-* No testing has been done with LPC18xx hardware. At the very least supporting
-  the LPC18xx would require different compiler flags, additional CMSIS core_cm3
-  code as well as minor driver code changes.
-
-Notes
------
-* On the LPC43xx the hardware pin name and the GPIO pin name are not the same,
-  requiring different offsets for the SCU and GPIO registers. To simplify logic
-  the pin identifier encodes the offsets. Macros are used for decoding.
-  For example, P6_11 corresponds to GPIO3[7] and is encoded/decoded as follows:
-
-    P6_11 = MBED_PIN(0x06, 11, 3, 7) = 0x032C0067
-
-    MBED_SCU_REG(P6_11)  = 0x4008632C      MBED_GPIO_PORT(P6_11) = 3
-    MBED_GPIO_REG(P6_11) = 0x400F4000      MBED_GPIO_PIN(P6_11)  = 7
-
-* The LPC43xx implements GPIO pin and group interrupts. Any pin in the 8 32-bit
-  GPIO ports can interrupt (LPC4350 supports up to 164). On group interrupts a
-  pin can only interrupt on the rising or falling edge, not both as required
-  by the mbed InterruptIn class. Also, group interrupts can't be cleared
-  individually. This implementation uses pin interrupts (8 on M4/M3, 1 on M0).
-  A future implementation may provide group interrupt support.