From f3e3f97c9326604a6bb1b2bd4a8661a54f1f1461 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Fri, 20 Nov 2015 10:07:31 +0000 Subject: CW builder added to SPC560D demo. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8514 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/SPC5/RT-SPC560D-EVB-CW/chconf.h | 499 ------------------------------ demos/SPC5/RT-SPC560D-EVB-CW/cw/ch/ch.lcf | 135 -------- demos/SPC5/RT-SPC560D-EVB-CW/cw/ch/ch.mcp | Bin 45755 -> 0 bytes demos/SPC5/RT-SPC560D-EVB-CW/main.c | 3 - demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf | 154 +++++++++ demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.mcp | Bin 0 -> 61981 bytes 6 files changed, 154 insertions(+), 637 deletions(-) delete mode 100644 demos/SPC5/RT-SPC560D-EVB-CW/chconf.h delete mode 100644 demos/SPC5/RT-SPC560D-EVB-CW/cw/ch/ch.lcf delete mode 100644 demos/SPC5/RT-SPC560D-EVB-CW/cw/ch/ch.mcp delete mode 100644 demos/SPC5/RT-SPC560D-EVB-CW/main.c create mode 100644 demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf create mode 100644 demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.mcp (limited to 'demos/SPC5') diff --git a/demos/SPC5/RT-SPC560D-EVB-CW/chconf.h b/demos/SPC5/RT-SPC560D-EVB-CW/chconf.h deleted file mode 100644 index f6244ad4b..000000000 --- a/demos/SPC5/RT-SPC560D-EVB-CW/chconf.h +++ /dev/null @@ -1,499 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -*/ - -/** - * @file templates/chconf.h - * @brief Configuration file template. - * @details A copy of this file must be placed in each project directory, it - * contains the application specific kernel settings. - * - * @addtogroup config - * @details Kernel related settings and hooks. - * @{ - */ - -#ifndef _CHCONF_H_ -#define _CHCONF_H_ - -/*===========================================================================*/ -/** - * @name System timers settings - * @{ - */ -/*===========================================================================*/ - -/** - * @brief System time counter resolution. - * @note Allowed values are 16 or 32 bits. - */ -#define CH_CFG_ST_RESOLUTION 32 - -/** - * @brief System tick frequency. - * @details Frequency of the system timer that drives the system ticks. This - * setting also defines the system tick time unit. - */ -#define CH_CFG_ST_FREQUENCY 1000 - -/** - * @brief Time delta constant for the tick-less mode. - * @note If this value is zero then the system uses the classic - * periodic tick. This value represents the minimum number - * of ticks that is safe to specify in a timeout directive. - * The value one is not valid, timeouts are rounded up to - * this value. - */ -#define CH_CFG_ST_TIMEDELTA 0 - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel parameters and options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Round robin interval. - * @details This constant is the number of system ticks allowed for the - * threads before preemption occurs. Setting this value to zero - * disables the preemption for threads with equal priority and the - * round robin becomes cooperative. Note that higher priority - * threads can still preempt, the kernel is always preemptive. - * @note Disabling the round robin preemption makes the kernel more compact - * and generally faster. - * @note The round robin preemption is not supported in tickless mode and - * must be set to zero in that case. - */ -#define CH_CFG_TIME_QUANTUM 0 - -/** - * @brief Managed RAM size. - * @details Size of the RAM area to be managed by the OS. If set to zero - * then the whole available RAM is used. The core memory is made - * available to the heap allocator and/or can be used directly through - * the simplified core memory allocator. - * - * @note In order to let the OS manage the whole RAM the linker script must - * provide the @p __heap_base__ and @p __heap_end__ symbols. - * @note Requires @p CH_CFG_USE_MEMCORE. - */ -#define CH_CFG_MEMCORE_SIZE 0 - -/** - * @brief Idle thread automatic spawn suppression. - * @details When this option is activated the function @p chSysInit() - * does not spawn the idle thread. The application @p main() - * function becomes the idle thread and must implement an - * infinite loop. - */ -#define CH_CFG_NO_IDLE_THREAD FALSE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Performance options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief OS optimization. - * @details If enabled then time efficient rather than space efficient code - * is used when two possible implementations exist. - * - * @note This is not related to the compiler optimization options. - * @note The default is @p TRUE. - */ -#define CH_CFG_OPTIMIZE_SPEED TRUE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Subsystem options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Time Measurement APIs. - * @details If enabled then the time measurement APIs are included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_TM FALSE - -/** - * @brief Threads registry APIs. - * @details If enabled then the registry APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_REGISTRY TRUE - -/** - * @brief Threads synchronization APIs. - * @details If enabled then the @p chThdWait() function is included in - * the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_WAITEXIT TRUE - -/** - * @brief Semaphores APIs. - * @details If enabled then the Semaphores APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_SEMAPHORES TRUE - -/** - * @brief Semaphores queuing mode. - * @details If enabled then the threads are enqueued on semaphores by - * priority rather than in FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE - -/** - * @brief Mutexes APIs. - * @details If enabled then the mutexes APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MUTEXES TRUE - -/** - * @brief Enables recursive behavior on mutexes. - * @note Recursive mutexes are heavier and have an increased - * memory footprint. - * - * @note The default is @p FALSE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE - -/** - * @brief Conditional Variables APIs. - * @details If enabled then the conditional variables APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MUTEXES. - */ -#define CH_CFG_USE_CONDVARS TRUE - -/** - * @brief Conditional Variables APIs with timeout. - * @details If enabled then the conditional variables APIs with timeout - * specification are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_CONDVARS. - */ -#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE - -/** - * @brief Events Flags APIs. - * @details If enabled then the event flags APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_EVENTS TRUE - -/** - * @brief Events Flags APIs with timeout. - * @details If enabled then the events APIs with timeout specification - * are included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_EVENTS. - */ -#define CH_CFG_USE_EVENTS_TIMEOUT TRUE - -/** - * @brief Synchronous Messages APIs. - * @details If enabled then the synchronous messages APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MESSAGES TRUE - -/** - * @brief Synchronous Messages queuing mode. - * @details If enabled then messages are served by priority rather than in - * FIFO order. - * - * @note The default is @p FALSE. Enable this if you have special - * requirements. - * @note Requires @p CH_CFG_USE_MESSAGES. - */ -#define CH_CFG_USE_MESSAGES_PRIORITY FALSE - -/** - * @brief Mailboxes APIs. - * @details If enabled then the asynchronous messages (mailboxes) APIs are - * included in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_SEMAPHORES. - */ -#define CH_CFG_USE_MAILBOXES TRUE - -/** - * @brief I/O Queues APIs. - * @details If enabled then the I/O queues APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_QUEUES TRUE - -/** - * @brief Core Memory Manager APIs. - * @details If enabled then the core memory manager APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MEMCORE TRUE - -/** - * @brief Heap Allocator APIs. - * @details If enabled then the memory heap allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or - * @p CH_CFG_USE_SEMAPHORES. - * @note Mutexes are recommended. - */ -#define CH_CFG_USE_HEAP TRUE - -/** - * @brief Memory Pools Allocator APIs. - * @details If enabled then the memory pools allocator APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - */ -#define CH_CFG_USE_MEMPOOLS TRUE - -/** - * @brief Dynamic Threads APIs. - * @details If enabled then the dynamic threads creation APIs are included - * in the kernel. - * - * @note The default is @p TRUE. - * @note Requires @p CH_CFG_USE_WAITEXIT. - * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS. - */ -#define CH_CFG_USE_DYNAMIC TRUE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Debug options - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Debug option, kernel statistics. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_STATISTICS FALSE - -/** - * @brief Debug option, system state check. - * @details If enabled the correct call protocol for system APIs is checked - * at runtime. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_SYSTEM_STATE_CHECK FALSE - -/** - * @brief Debug option, parameters checks. - * @details If enabled then the checks on the API functions input - * parameters are activated. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_CHECKS FALSE - -/** - * @brief Debug option, consistency checks. - * @details If enabled then all the assertions in the kernel code are - * activated. This includes consistency checks inside the kernel, - * runtime anomalies and port-defined checks. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_ASSERTS FALSE - -/** - * @brief Debug option, trace buffer. - * @details If enabled then the context switch circular trace buffer is - * activated. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_ENABLE_TRACE FALSE - -/** - * @brief Debug option, stack checks. - * @details If enabled then a runtime stack check is performed. - * - * @note The default is @p FALSE. - * @note The stack check is performed in a architecture/port dependent way. - * It may not be implemented or some ports. - * @note The default failure mode is to halt the system with the global - * @p panic_msg variable set to @p NULL. - */ -#define CH_DBG_ENABLE_STACK_CHECK FALSE - -/** - * @brief Debug option, stacks initialization. - * @details If enabled then the threads working area is filled with a byte - * value when a thread is created. This can be useful for the - * runtime measurement of the used stack. - * - * @note The default is @p FALSE. - */ -#define CH_DBG_FILL_THREADS FALSE - -/** - * @brief Debug option, threads profiling. - * @details If enabled then a field is added to the @p thread_t structure that - * counts the system ticks occurred while executing the thread. - * - * @note The default is @p FALSE. - * @note This debug option is not currently compatible with the - * tickless mode. - */ -#define CH_DBG_THREADS_PROFILING FALSE - -/** @} */ - -/*===========================================================================*/ -/** - * @name Kernel hooks - * @{ - */ -/*===========================================================================*/ - -/** - * @brief Threads descriptor structure extension. - * @details User fields added to the end of the @p thread_t structure. - */ -#define CH_CFG_THREAD_EXTRA_FIELDS \ - /* Add threads custom fields here.*/ - -/** - * @brief Threads initialization hook. - * @details User initialization code added to the @p chThdInit() API. - * - * @note It is invoked from within @p chThdInit() and implicitly from all - * the threads creation APIs. - */ -#define CH_CFG_THREAD_INIT_HOOK(tp) { \ - /* Add threads initialization code here.*/ \ -} - -/** - * @brief Threads finalization hook. - * @details User finalization code added to the @p chThdExit() API. - * - * @note It is inserted into lock zone. - * @note It is also invoked when the threads simply return in order to - * terminate. - */ -#define CH_CFG_THREAD_EXIT_HOOK(tp) { \ - /* Add threads finalization code here.*/ \ -} - -/** - * @brief Context switch hook. - * @details This hook is invoked just before switching between threads. - */ -#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \ - /* Context switch code here.*/ \ -} - -/** - * @brief Idle thread enter hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to activate a power saving mode. - */ -#define CH_CFG_IDLE_ENTER_HOOK() { \ -} - -/** - * @brief Idle thread leave hook. - * @note This hook is invoked within a critical zone, no OS functions - * should be invoked from here. - * @note This macro can be used to deactivate a power saving mode. - */ -#define CH_CFG_IDLE_LEAVE_HOOK() { \ -} - -/** - * @brief Idle Loop hook. - * @details This hook is continuously invoked by the idle thread loop. - */ -#define CH_CFG_IDLE_LOOP_HOOK() { \ - /* Idle loop code here.*/ \ -} - -/** - * @brief System tick event hook. - * @details This hook is invoked in the system tick handler immediately - * after processing the virtual timers queue. - */ -#define CH_CFG_SYSTEM_TICK_HOOK() { \ - /* System tick event code here.*/ \ -} - -/** - * @brief System halt hook. - * @details This hook is invoked in case to a system halting error before - * the system is halted. - */ -#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \ - /* System halt code here.*/ \ -} - -/** @} */ - -/*===========================================================================*/ -/* Port-specific settings (override port settings defaulted in chcore.h). */ -/*===========================================================================*/ - -#endif /* _CHCONF_H_ */ - -/** @} */ diff --git a/demos/SPC5/RT-SPC560D-EVB-CW/cw/ch/ch.lcf b/demos/SPC5/RT-SPC560D-EVB-CW/cw/ch/ch.lcf deleted file mode 100644 index ac2e8516f..000000000 --- a/demos/SPC5/RT-SPC560D-EVB-CW/cw/ch/ch.lcf +++ /dev/null @@ -1,135 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio. - - This file is part of ChibiOS. - - ChibiOS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - ChibiOS is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/* - * SPC560D40 memory setup. - */ -MEMORY -{ - flash : org = 0x00000000, len = 0x00040000 - dataflash : org = 0x00800000, len = 0x00010000 - ram : org = 0x40000000, len = 0x00004000 -} - -__irq_stack_size__ = 0; -__process_stack_size__ = 0x1000; - -__ram_size__ = SIZEOF(ram); -__ram_start__ = ADDR(ram); -__ram_end__ = ADDR(ram) + SIZEOF(ram); - -SECTIONS -{ - . = ADDR(flash); - - GROUP: - { - .boot ALIGN(16): - { - KEEP(*(.boot)) - } - - .handlers ALIGN(4): {} - - .crt0 ALIGN(4): {} - - .init ALIGN(4): {} - - .vectors ALIGN(0x800): - { - KEEP(*(.vectors)) - } - - .ivors ALIGN(0x1000): - { - __ivpr_base__ = .; - KEEP(*(.ivors)) - } - - .code (VLECODE) ALIGN(16): - { - *(.text) - *(.text_vle) - } - - .const (CONST) ALIGN(16): - { - *(.rodata) - } - - .sdata2 (CONST) ALIGN(16): - { - __sdata2_start__ = . + 0x8000; - *(.sdata2) - *(.sbss2) - } - - .ctors : {} - .dtors : {} - extab: {} - extabindex: {} - - } > flash - - GROUP: - { - .stacks (BSS) ALIGN(16): - { - . = ALIGN(8); - __irq_stack_base__ = .; - . = . + __irq_stack_size__; - . = ALIGN(8); - __irq_stack_end__ = .; - __process_stack_base__ = .; - __main_thread_stack_base__ = .; - . = . + __process_stack_size__; - . = ALIGN(8); - __process_stack_end__ = .; - __main_thread_stack_end__ = .; - } - - .data: - { - . = ALIGN(4); - __data_start__ = .; - *(.data) - } - - .sdata: - { - __sdata_start__ = . + 0x8000; - *(.sdata) - __data_end__ = .; - } - - .sbss: - { - __bss_start__ = .; - *(.sbss) - } - - .bss: - { - *(.bss) - __bss_end__ = .; - } - } > ram -} - -__romdata_start__ = _f_data_rom; diff --git a/demos/SPC5/RT-SPC560D-EVB-CW/cw/ch/ch.mcp b/demos/SPC5/RT-SPC560D-EVB-CW/cw/ch/ch.mcp deleted file mode 100644 index 8e5821d29..000000000 Binary files a/demos/SPC5/RT-SPC560D-EVB-CW/cw/ch/ch.mcp and /dev/null differ diff --git a/demos/SPC5/RT-SPC560D-EVB-CW/main.c b/demos/SPC5/RT-SPC560D-EVB-CW/main.c deleted file mode 100644 index 1501d20f6..000000000 --- a/demos/SPC5/RT-SPC560D-EVB-CW/main.c +++ /dev/null @@ -1,3 +0,0 @@ -void main(void) { - -} \ No newline at end of file diff --git a/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf b/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf new file mode 100644 index 000000000..b79240037 --- /dev/null +++ b/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.lcf @@ -0,0 +1,154 @@ +/* + ChibiOS - Copyright (C) 2006..2015 Giovanni Di Sirio. + + This file is part of ChibiOS. + + ChibiOS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/* + * SPC560D40 memory setup. + */ +MEMORY +{ + flash : org = 0x00000000, len = 0x00040000 + dataflash : org = 0x00800000, len = 0x00010000 + ram : org = 0x40000000, len = 0x00004000 +} + +__irq_stack_size__ = 0; +__process_stack_size__ = 0x1000; + +__ram_size__ = SIZEOF(ram); +__ram_start__ = ADDR(ram); +__ram_end__ = ADDR(ram) + SIZEOF(ram); + +SECTIONS +{ + . = ADDR(flash); + + GROUP: + { + .boot ALIGN(16): + { + KEEP(*(.boot)) + } + + .handlers ALIGN(4): { + KEEP(*(.handlers)) + } + + .crt0 ALIGN(4): { + *(.crt0) + } + + .init: {} + + .init_vle (VLECODE) ALIGN(4): + { + *(.init) + *(.init_vle) + } + + .vectors ALIGN(0x800): + { + KEEP(*(.vectors)) + } + + .ivors ALIGN(0x1000): + { + __ivpr_base__ = .; + KEEP(*(.ivors)) + } + + .code (VLECODE) ALIGN(16): + { + *(.text) + *(.text_vle) + } + + .const (CONST) ALIGN(16): + { + *(.rodata) + } + + .sdata2 (CONST) ALIGN(16): + { + __sdata2_start__ = . + 0x8000; + *(.sdata2) + *(.sbss2) + } + + .ctors: {} + .dtors: {} + extab: {} + extabindex: {} + + } > flash + + GROUP: + { + .stacks (BSS) ALIGN(16): + { + . = ALIGN(8); + __irq_stack_base__ = .; + . = . + __irq_stack_size__; + . = ALIGN(8); + __irq_stack_end__ = .; + __process_stack_base__ = .; + __main_thread_stack_base__ = .; + . = . + __process_stack_size__; + . = ALIGN(8); + __process_stack_end__ = .; + __main_thread_stack_end__ = .; + } + + .data: + { + . = ALIGN(4); + __data_start__ = .; + *(.data) + } + + .sdata: + { + __sdata_start__ = . + 0x8000; + *(.sdata) + __data_end__ = .; + } + + .sbss: + { + __bss_start__ = .; + *(.sbss) + } + + .bss: + { + *(.bss) + __bss_end__ = .; + } + + /* The default heap uses the (statically) unused part of a RAM section.*/ + .heap: + { + . = ALIGN(8); + __heap_base__ = .; + . = ADDR(ram) + SIZEOF(ram); + __heap_end__ = .; + } + } > ram +} + +__romdata_start__ = _f_data_rom; diff --git a/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.mcp b/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.mcp new file mode 100644 index 000000000..b01513018 Binary files /dev/null and b/demos/SPC5/RT-SPC560D-EVB/cw/ch/ch.mcp differ -- cgit v1.2.3