add new port for FUJITSU FSSDC-9B506-EVB v1.0
finsh are supported git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1419 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
parent
6a27c24e1e
commit
0050c8b708
40
bsp/fm3/mb9b506r/application.c
Normal file
40
bsp/fm3/mb9b506r/application.c
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* File : application.c
|
||||
* This file is part of RT-Thread RTOS
|
||||
* COPYRIGHT (C) 2009 - 2011, RT-Thread Development Team
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rt-thread.org/license/LICENSE
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2011-02-24 Bernard the first version
|
||||
*/
|
||||
|
||||
/**
|
||||
* @addtogroup FM3
|
||||
*/
|
||||
/*@{*/
|
||||
|
||||
#include <rtthread.h>
|
||||
#include "board.h"
|
||||
#include "led.h"
|
||||
|
||||
void rt_init_thread_entry(void *parameter)
|
||||
{
|
||||
rt_hw_led_init();
|
||||
}
|
||||
|
||||
int rt_application_init()
|
||||
{
|
||||
rt_thread_t init_thread;
|
||||
|
||||
init_thread = rt_thread_create("init", rt_init_thread_entry, RT_NULL, 1024, 21, 20);
|
||||
if(init_thread != RT_NULL)
|
||||
rt_thread_startup(init_thread);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*@}*/
|
109
bsp/fm3/mb9b506r/board.c
Normal file
109
bsp/fm3/mb9b506r/board.c
Normal file
@ -0,0 +1,109 @@
|
||||
/*
|
||||
* File : board.c
|
||||
* This file is part of RT-Thread RTOS
|
||||
* COPYRIGHT (C) 2009 - 2011 RT-Thread Develop Team
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rt-thread.org/license/LICENSE
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2011-02-24 Bernard first implementation
|
||||
*/
|
||||
|
||||
#include <rthw.h>
|
||||
#include <rtthread.h>
|
||||
|
||||
#include "board.h"
|
||||
#include "mb9bf506r.h"
|
||||
#include "core_cm3.h"
|
||||
|
||||
extern const uint32_t SystemFrequency;
|
||||
|
||||
#define UART0 FM3_MFS0_UART
|
||||
struct serial_int_rx uart0_int_rx;
|
||||
struct serial_device uart0 =
|
||||
{
|
||||
UART0,
|
||||
&uart0_int_rx,
|
||||
RT_NULL
|
||||
};
|
||||
struct rt_device uart0_device;
|
||||
|
||||
#define UART2 FM3_MFS2_UART
|
||||
struct serial_int_rx uart2_int_rx;
|
||||
struct serial_device uart2 =
|
||||
{
|
||||
UART2,
|
||||
&uart2_int_rx,
|
||||
RT_NULL
|
||||
};
|
||||
struct rt_device uart2_device;
|
||||
|
||||
/**
|
||||
* @addtogroup FM3
|
||||
*/
|
||||
|
||||
/*@{*/
|
||||
|
||||
/**
|
||||
* This is the timer interrupt service routine.
|
||||
*
|
||||
*/
|
||||
void rt_hw_timer_handler(void)
|
||||
{
|
||||
/* enter interrupt */
|
||||
rt_interrupt_enter();
|
||||
|
||||
rt_tick_increase();
|
||||
|
||||
/* leave interrupt */
|
||||
rt_interrupt_leave();
|
||||
}
|
||||
|
||||
void rt_hw_uart2_rx_handler(void)
|
||||
{
|
||||
#ifdef RT_USING_UART2
|
||||
extern struct rt_device uart2_device;
|
||||
extern void rt_hw_serial_isr(struct rt_device *device);
|
||||
|
||||
/* enter interrupt */
|
||||
rt_interrupt_enter();
|
||||
|
||||
rt_hw_serial_isr(&uart2_device);
|
||||
|
||||
/* leave interrupt */
|
||||
rt_interrupt_leave();
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
* This function will handle init uart
|
||||
*/
|
||||
static void rt_hw_uart_init(void)
|
||||
{
|
||||
/* Set Uart Ch2 Port, SIN2_1, SOT2_1 */
|
||||
FM3_GPIO->PFR2 = FM3_GPIO->PFR2 | 0x0030;
|
||||
FM3_GPIO->EPFR07 = FM3_GPIO->EPFR07 | 0x000a0000;
|
||||
|
||||
uart2.uart_device->SMR = SMR_MD_UART | SMR_SOE;;
|
||||
uart2.uart_device->BGR = (40000000UL + (BPS/2))/BPS - 1;
|
||||
uart2.uart_device->ESCR = ESCR_DATABITS_8;
|
||||
uart2.uart_device->SCR = SCR_RXE | SCR_TXE | SCR_RIE;
|
||||
|
||||
UART_ENABLE_IRQ(MFS2RX_IRQn);
|
||||
UART_ENABLE_IRQ(MFS2TX_IRQn);
|
||||
}
|
||||
|
||||
/**
|
||||
* This function will initial FM3 Easy Kit board.
|
||||
*/
|
||||
void rt_hw_board_init()
|
||||
{
|
||||
/* init systick */
|
||||
SysTick_Config(SystemFrequency/RT_TICK_PER_SECOND - 1);
|
||||
rt_hw_uart_init();
|
||||
}
|
||||
|
||||
/*@}*/
|
31
bsp/fm3/mb9b506r/board.h
Normal file
31
bsp/fm3/mb9b506r/board.h
Normal file
@ -0,0 +1,31 @@
|
||||
/*
|
||||
* File : board.h
|
||||
* This file is part of RT-Thread RTOS
|
||||
* COPYRIGHT (C) 2009, RT-Thread Development Team
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rt-thread.org/license/LICENSE
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2009-09-22 Bernard add board.h to this bsp
|
||||
* 2011-03-04 lgnq add board.h to FM3 bsp
|
||||
*/
|
||||
|
||||
#ifndef __BOARD_H__
|
||||
#define __BOARD_H__
|
||||
|
||||
#include "serial.h"
|
||||
|
||||
//Internal SRAM memory size[Kbytes] <8-64>
|
||||
//MB9BF500 : 32
|
||||
//MB9BF504 : 32
|
||||
//MB9BF505 : 48
|
||||
//MB9BF506 : 64
|
||||
#define FM3_SRAM_SIZE 64
|
||||
#define FM3_SRAM_END (0x1FFF8000 + FM3_SRAM_SIZE * 1024)
|
||||
|
||||
void rt_hw_board_init(void);
|
||||
|
||||
#endif
|
180
bsp/fm3/mb9b506r/console.c
Normal file
180
bsp/fm3/mb9b506r/console.c
Normal file
@ -0,0 +1,180 @@
|
||||
#include <rtthread.h>
|
||||
|
||||
#include <serial.h>
|
||||
|
||||
#define RT_CONSOLE_WIDTH 240
|
||||
#define RT_CONSOLE_HEIGHT 320
|
||||
|
||||
#define RT_CONSOLE_FONT_WIDTH 8
|
||||
#define RT_CONSOLE_FONT_HEIGHT 16
|
||||
|
||||
#define RT_CONSOLE_COL (RT_CONSOLE_WIDTH/RT_CONSOLE_FONT_WIDTH)
|
||||
#define RT_CONSOLE_ROW (RT_CONSOLE_HEIGHT/RT_CONSOLE_FONT_HEIGHT)
|
||||
|
||||
#define RT_CONSOLE_TAB 4
|
||||
|
||||
#define RT_CONSOLE_FOREPIXEL (0x001f)
|
||||
|
||||
extern struct serial_device uart2;
|
||||
|
||||
struct rt_console
|
||||
{
|
||||
rt_uint8_t* video_ptr;
|
||||
rt_uint8_t* font_ptr;
|
||||
|
||||
/* bpp and pixel of width */
|
||||
rt_uint8_t bpp;
|
||||
rt_uint32_t pitch;
|
||||
|
||||
/* current cursor */
|
||||
rt_uint8_t current_col;
|
||||
rt_uint8_t current_row;
|
||||
};
|
||||
struct rt_console console;
|
||||
|
||||
void rt_hw_console_init(rt_uint8_t* video_ptr, rt_uint8_t* font_ptr, rt_uint8_t bpp);
|
||||
void rt_hw_console_newline(void);
|
||||
void rt_hw_console_putc(char c);
|
||||
void rt_hw_console_clear(void);
|
||||
|
||||
void rt_hw_console_init(rt_uint8_t* video_ptr, rt_uint8_t* font_ptr, rt_uint8_t bpp)
|
||||
{
|
||||
rt_memset(&console, 0, sizeof(struct rt_console));
|
||||
|
||||
console.video_ptr = video_ptr;
|
||||
console.font_ptr = font_ptr;
|
||||
console.bpp = bpp;
|
||||
console.pitch = console.bpp * RT_CONSOLE_WIDTH;
|
||||
|
||||
rt_hw_console_clear();
|
||||
}
|
||||
|
||||
void rt_hw_console_putc(char c)
|
||||
{
|
||||
switch (c)
|
||||
{
|
||||
case 10:
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
/* to next line */
|
||||
rt_hw_console_newline();
|
||||
console.current_col = 0;
|
||||
break;
|
||||
|
||||
case 9:
|
||||
console.current_col += RT_CONSOLE_TAB;
|
||||
break;
|
||||
|
||||
default:
|
||||
{
|
||||
rt_uint8_t* font_ptr;
|
||||
register rt_uint32_t cursor;
|
||||
register rt_uint32_t i, j;
|
||||
|
||||
if (console.current_col == RT_CONSOLE_COL)
|
||||
{
|
||||
rt_hw_console_newline();
|
||||
console.current_col = 0;
|
||||
|
||||
rt_hw_console_putc(c);
|
||||
return;
|
||||
}
|
||||
|
||||
font_ptr = console.font_ptr + c * RT_CONSOLE_FONT_HEIGHT;
|
||||
cursor = (console.current_row * RT_CONSOLE_FONT_HEIGHT) * console.pitch
|
||||
+ console.current_col * RT_CONSOLE_FONT_WIDTH * console.bpp;
|
||||
|
||||
for (i = 0; i < RT_CONSOLE_FONT_HEIGHT; i ++ )
|
||||
{
|
||||
for (j = 0; j < RT_CONSOLE_FONT_WIDTH; j ++)
|
||||
{
|
||||
if ( ((font_ptr[i] >> (7-j)) & 0x01) != 0 )
|
||||
{
|
||||
/* draw a pixel */
|
||||
rt_uint8_t *ptr = &(console.video_ptr[cursor + i * console.pitch + j * console.bpp]);
|
||||
switch(console.bpp)
|
||||
{
|
||||
case 1:
|
||||
*ptr = RT_CONSOLE_FOREPIXEL;
|
||||
break;
|
||||
case 2:
|
||||
*(rt_uint16_t*)ptr = RT_CONSOLE_FOREPIXEL;
|
||||
break;
|
||||
case 3:
|
||||
ptr[0] = RT_CONSOLE_FOREPIXEL & 0xff;
|
||||
ptr[1] = (RT_CONSOLE_FOREPIXEL >> 8) & 0xff;
|
||||
ptr[2] = (RT_CONSOLE_FOREPIXEL >> 16) & 0xff;
|
||||
break;
|
||||
case 4:
|
||||
*(rt_uint32_t*)ptr = RT_CONSOLE_FOREPIXEL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.current_col ++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void rt_hw_console_newline()
|
||||
{
|
||||
console.current_row ++;
|
||||
if (console.current_row >= RT_CONSOLE_ROW)
|
||||
{
|
||||
rt_uint32_t i;
|
||||
|
||||
/* scroll to next line */
|
||||
for (i = 0; i < RT_CONSOLE_ROW - 1; i ++)
|
||||
{
|
||||
rt_memcpy(console.video_ptr + i * RT_CONSOLE_FONT_HEIGHT * console.pitch,
|
||||
console.video_ptr + (i + 1) * RT_CONSOLE_FONT_HEIGHT * console.pitch,
|
||||
RT_CONSOLE_FONT_HEIGHT * console.pitch);
|
||||
}
|
||||
|
||||
/* clear last line */
|
||||
rt_memset(console.video_ptr + (RT_CONSOLE_ROW - 1) * RT_CONSOLE_FONT_HEIGHT * console.pitch,
|
||||
0,
|
||||
RT_CONSOLE_FONT_HEIGHT * console.pitch);
|
||||
|
||||
console.current_row = RT_CONSOLE_ROW - 1;
|
||||
}
|
||||
}
|
||||
|
||||
void rt_hw_console_clear()
|
||||
{
|
||||
console.current_col = 0;
|
||||
console.current_row = 0;
|
||||
|
||||
rt_memset(console.video_ptr, 0, RT_CONSOLE_HEIGHT * console.pitch);
|
||||
}
|
||||
|
||||
/* write one character to serial, must not trigger interrupt */
|
||||
void rt_hw_serial_putc(const char c)
|
||||
{
|
||||
/*
|
||||
to be polite with serial console add a line feed
|
||||
to the carriage return character
|
||||
*/
|
||||
if (c=='\n')rt_hw_serial_putc('\r');
|
||||
|
||||
while (!(uart2.uart_device->SSR & SSR_TDRE));
|
||||
uart2.uart_device->TDR = (c & 0x1FF);
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is used by rt_kprintf to display a string on console.
|
||||
*
|
||||
* @param str the displayed string
|
||||
*/
|
||||
void rt_hw_console_output(const char* str)
|
||||
{
|
||||
while (*str)
|
||||
{
|
||||
rt_hw_serial_putc(*str++);
|
||||
}
|
||||
}
|
||||
|
769
bsp/fm3/mb9b506r/fm3_easy_kit.dep
Normal file
769
bsp/fm3/mb9b506r/fm3_easy_kit.dep
Normal file
@ -0,0 +1,769 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<project>
|
||||
<fileVersion>2</fileVersion>
|
||||
<fileChecksum>1392295362</fileChecksum>
|
||||
<configuration>
|
||||
<name>Debug</name>
|
||||
<outputs>
|
||||
<file>$PROJ_DIR$\..\..\..\include\rtthread.h</file>
|
||||
<file>$PROJ_DIR$\..\CMSIS\system_mb9bf50x.h</file>
|
||||
<file>$PROJ_DIR$\..\CMSIS\core_cmFunc.h</file>
|
||||
<file>$PROJ_DIR$\..\CMSIS\core_cm3.h</file>
|
||||
<file>$PROJ_DIR$\..\..\..\include\rtdef.h</file>
|
||||
<file>$PROJ_DIR$\..\CMSIS\core_cmInstr.h</file>
|
||||
<file>$PROJ_DIR$\..\CMSIS\mb9bf506r.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\object.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\application.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\module.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\ipc.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\mem.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\scheduler.o</file>
|
||||
<file>$PROJ_DIR$\rtconfig.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\mem.pbi</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\wchar.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\ycheck.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Threads.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xencoding_limits.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Product.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\yvals.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Defaults.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\stdint.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\string.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\board.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\led.pbi</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\ysizet.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\cpuport.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_init.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\console.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_var.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_ops.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_error.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_vm.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\cmd.pbi</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xtls.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\ctype.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xlocale_c.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xmtx.h</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xlocaleuse.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\thread.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\kservice.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_compiler.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_node.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_parser.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_heap.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_compiler.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\symbol.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_token.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_heap.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\cmd.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_token.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\shell.o</file>
|
||||
<file>$PROJ_DIR$\..\..\..\libcpu\arm\fm3\fault_iar.S</file>
|
||||
<file>$PROJ_DIR$\..\..\..\libcpu\arm\fm3\start_iar.S</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\object.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\libcpu\arm\fm3\context_iar.S</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\scheduler.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\libcpu\arm\fm3\cpuport.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\slab.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\rtm.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\timer.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\thread.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\idle.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\mempool.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\module.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\ipc.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\kservice.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\mem.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\irq.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\device.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\src\clock.c</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_var.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_vm.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\shell.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\symbol.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\thread.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_parser.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_init.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_node.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_ops.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\serial.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\clock.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\scheduler.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\serial.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\console.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\idle.o</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\xlocale.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\irq.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\clock.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\device.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\slab.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\start_iar.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\core_cm3.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\kservice.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\object.o</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\intrinsics.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\system_mb9bf50x.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\module.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\application.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\slab.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\fault_iar.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\mempool.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\idle.pbi</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\stdlib.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\rtm.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\rtm.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\finsh_error.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\mempool.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\cpuport.pbi</file>
|
||||
<file>$PROJ_DIR$\..\CMSIS\core_cm3.c</file>
|
||||
<file>$PROJ_DIR$\..\CMSIS\system_mb9bf50x.c</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\startup.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\context_iar.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\board.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\timer.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\core_cm3.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\device.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Exe\fm3_easy_kit.out</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\irq.pbi</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\stdarg.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\system_mb9bf50x.pbi</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\timer.o</file>
|
||||
<file>$TOOLKIT_DIR$\inc\c\DLib_Product_string.h</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\startup.pbi</file>
|
||||
<file>$PROJ_DIR$\application.c</file>
|
||||
<file>$PROJ_DIR$\board.c</file>
|
||||
<file>$PROJ_DIR$\console.c</file>
|
||||
<file>$PROJ_DIR$\led.c</file>
|
||||
<file>$PROJ_DIR$\serial.c</file>
|
||||
<file>$PROJ_DIR$\startup.c</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\led.o</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\fm3_easy_kit.pbd</file>
|
||||
<file>$PROJ_DIR$\Debug\Obj\ipc.o</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\symbol.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\shell.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_vm.h</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_vm.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_var.h</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_var.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_token.h</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_token.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_parser.h</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_parser.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_ops.h</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_ops.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_node.h</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_node.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_init.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_heap.h</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_heap.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh.h</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\cmd.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_compiler.c</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_error.h</file>
|
||||
<file>$PROJ_DIR$\..\..\..\components\finsh\finsh_error.c</file>
|
||||
</outputs>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\libcpu\arm\fm3\fault_iar.S</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>AARM</name>
|
||||
<file> 101</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\libcpu\arm\fm3\start_iar.S</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>AARM</name>
|
||||
<file> 92</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\object.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 7</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 95</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\libcpu\arm\fm3\context_iar.S</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>AARM</name>
|
||||
<file> 113</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\scheduler.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 83</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 12</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\libcpu\arm\fm3\cpuport.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 109</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 27</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\slab.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 100</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 91</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\rtm.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 105</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 106</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\timer.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 115</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 122</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\thread.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 40</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 76</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\idle.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 103</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 86</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\mempool.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 102</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 108</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\module.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 9</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 98</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\ipc.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 10</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 133</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\kservice.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 94</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 41</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\mem.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 14</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 11</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\irq.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 119</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 88</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\device.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 117</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 90</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\src\clock.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 82</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 89</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\CMSIS\core_cm3.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 116</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 93</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 22 16 20 21 19 18 17</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\CMSIS\system_mb9bf50x.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 121</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 97</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 6 3 22 16 20 21 19 18 17 5 96 2 1</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\application.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 8</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 99</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\board.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 24</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 114</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\console.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 85</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 29</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\led.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 25</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 131</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\serial.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 84</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 81</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\startup.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 124</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 112</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>[ROOT_NODE]</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>ILINK</name>
|
||||
<file> 118</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\symbol.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 75</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 47</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\shell.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 74</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 52</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\finsh_vm.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 73</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 33</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\finsh_var.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 72</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 30</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 151 0 4 13 120 16 20 21 19 18 17 36 87 35 38 104 26 39 37 15 23 123 138</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\finsh_token.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 51</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 48</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 151 0 4 13 120 16 20 21 19 18 17 36 87 35 38 104 26 39 37 15 23 123 140 154</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\finsh_parser.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 77</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 44</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 151 0 4 13 120 16 20 21 19 18 17 36 87 35 38 104 26 39 37 15 23 123 140 146 154 142 138</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\finsh_ops.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 80</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 31</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 144 136 151 0 4 13 120 16 20 21 19 18 17 36 87 35 38 104 26 39 37 15 23 123 138</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\finsh_node.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 79</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 43</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 151 0 4 13 120 16 20 21 19 18 17 36 87 35 38 104 26 39 37 15 23 123 146 154 138 149</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\finsh_init.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 78</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 28</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 151 0 4 13 120 16 20 21 19 18 17 36 87 35 38 104 26 39 37 15 23 123 146 136 138 142 154 149</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\finsh_heap.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 45</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 49</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 151 0 4 13 120 16 20 21 19 18 17 36 87 35 38 104 26 39 37 15 23 123 138</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\cmd.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 34</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 50</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 0 4 13 120 16 20 21 19 18 17 151 36 87 35 38 104 26 39 37 15 23 123</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\finsh_compiler.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 42</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 46</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 151 0 4 13 120 16 20 21 19 18 17 36 87 35 38 104 26 39 37 15 23 123 146 154 138 144 136</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\components\finsh\finsh_error.c</name>
|
||||
<outputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 107</file>
|
||||
</tool>
|
||||
<tool>
|
||||
<name>ICCARM</name>
|
||||
<file> 32</file>
|
||||
</tool>
|
||||
</outputs>
|
||||
<inputs>
|
||||
<tool>
|
||||
<name>BICOMP</name>
|
||||
<file> 154 151 0 4 13 120 16 20 21 19 18 17 36 87 35 38 104 26 39 37 15 23 123</file>
|
||||
</tool>
|
||||
</inputs>
|
||||
</file>
|
||||
</configuration>
|
||||
<configuration>
|
||||
<name>Release</name>
|
||||
<outputs/>
|
||||
<forcedrebuild>
|
||||
<name>[MULTI_TOOL]</name>
|
||||
<tool>ILINK</tool>
|
||||
</forcedrebuild>
|
||||
<forcedrebuild>
|
||||
<name>[REBUILD_ALL]</name>
|
||||
</forcedrebuild>
|
||||
</configuration>
|
||||
</project>
|
||||
|
||||
|
1659
bsp/fm3/mb9b506r/fm3_easy_kit.ewd
Normal file
1659
bsp/fm3/mb9b506r/fm3_easy_kit.ewd
Normal file
File diff suppressed because it is too large
Load Diff
1913
bsp/fm3/mb9b506r/fm3_easy_kit.ewp
Normal file
1913
bsp/fm3/mb9b506r/fm3_easy_kit.ewp
Normal file
File diff suppressed because it is too large
Load Diff
10
bsp/fm3/mb9b506r/fm3_easy_kit.eww
Normal file
10
bsp/fm3/mb9b506r/fm3_easy_kit.eww
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<workspace>
|
||||
<project>
|
||||
<path>$WS_DIR$\fm3_easy_kit.ewp</path>
|
||||
</project>
|
||||
<batchBuild/>
|
||||
</workspace>
|
||||
|
||||
|
141
bsp/fm3/mb9b506r/led.c
Normal file
141
bsp/fm3/mb9b506r/led.c
Normal file
@ -0,0 +1,141 @@
|
||||
/*
|
||||
* File : led.c
|
||||
* This file is part of RT-Thread RTOS
|
||||
* COPYRIGHT (C) 2011, RT-Thread Develop Team
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rt-thread.org/license/LICENSE
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2011-03-03 lgnq
|
||||
*/
|
||||
|
||||
#include <rtthread.h>
|
||||
#include <rthw.h>
|
||||
|
||||
#include "mb9bf506r.h"
|
||||
#include "led.h"
|
||||
|
||||
void rt_hw_led_on(rt_uint8_t num)
|
||||
{
|
||||
RT_ASSERT(num < LEDS_MAX_NUMBER);
|
||||
|
||||
switch (num)
|
||||
{
|
||||
case 1:
|
||||
USER_LED_PDOR &= ~USER_LED1;
|
||||
break;
|
||||
case 2:
|
||||
USER_LED_PDOR &= ~USER_LED2;
|
||||
break;
|
||||
case 3:
|
||||
USER_LED_PDOR &= ~USER_LED3;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void rt_hw_led_off(rt_uint8_t num)
|
||||
{
|
||||
RT_ASSERT(num < LEDS_MAX_NUMBER);
|
||||
|
||||
switch (num)
|
||||
{
|
||||
case 1:
|
||||
USER_LED_PDOR |= USER_LED1;
|
||||
break;
|
||||
case 2:
|
||||
USER_LED_PDOR |= USER_LED2;
|
||||
break;
|
||||
case 3:
|
||||
USER_LED_PDOR |= USER_LED3;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void rt_hw_led_toggle(rt_uint8_t num)
|
||||
{
|
||||
RT_ASSERT(num < LEDS_MAX_NUMBER);
|
||||
|
||||
switch (num)
|
||||
{
|
||||
case 1:
|
||||
if (USER_LED_PDOR&USER_LED1)
|
||||
USER_LED_PDOR &= ~USER_LED1;
|
||||
else
|
||||
USER_LED_PDOR |= USER_LED1;
|
||||
break;
|
||||
case 2:
|
||||
if (USER_LED_PDOR&USER_LED2)
|
||||
USER_LED_PDOR &= ~USER_LED2;
|
||||
else
|
||||
USER_LED_PDOR |= USER_LED2;
|
||||
break;
|
||||
case 3:
|
||||
if (USER_LED_PDOR&USER_LED3)
|
||||
USER_LED_PDOR &= ~USER_LED3;
|
||||
else
|
||||
USER_LED_PDOR |= USER_LED3;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void led_init(void)
|
||||
{
|
||||
/*Select CPIO function*/
|
||||
USER_LED_PFR &= ~USER_LED_MASK;
|
||||
/* disable analog input */
|
||||
FM3_GPIO->ADE &= ~USER_LED_MASK;
|
||||
/*Set CPIO Pull-Up function*/
|
||||
USER_LED_PCR |= USER_LED_MASK;
|
||||
/*Make led pins outputs*/
|
||||
USER_LED_DDR |= USER_LED_MASK;
|
||||
USER_LED_PDOR |= USER_LED_MASK;
|
||||
}
|
||||
|
||||
void pwm_update(rt_uint16_t value)
|
||||
{
|
||||
FM3_BT2_PWM->PDUT = value;
|
||||
}
|
||||
|
||||
static void led1_thread_entry(void *parameter)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
rt_hw_led_toggle(1);
|
||||
rt_thread_delay(RT_TICK_PER_SECOND);
|
||||
}
|
||||
}
|
||||
|
||||
static void led2_thread_entry(void *parameter)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
rt_hw_led_toggle(2);
|
||||
rt_thread_delay(RT_TICK_PER_SECOND/2);
|
||||
}
|
||||
}
|
||||
|
||||
static rt_thread_t led1_thread;
|
||||
static rt_thread_t led2_thread;
|
||||
void rt_hw_led_init(void)
|
||||
{
|
||||
led_init();
|
||||
|
||||
led1_thread = rt_thread_create("led1", led1_thread_entry, RT_NULL, 384, 29, 5);
|
||||
if (led1_thread != RT_NULL)
|
||||
rt_thread_startup(led1_thread);
|
||||
|
||||
led2_thread = rt_thread_create("led2", led2_thread_entry, RT_NULL, 384, 30, 5);
|
||||
if (led2_thread != RT_NULL)
|
||||
rt_thread_startup(led2_thread);
|
||||
}
|
||||
|
||||
|
43
bsp/fm3/mb9b506r/led.h
Normal file
43
bsp/fm3/mb9b506r/led.h
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* File : led.h
|
||||
* This file is part of RT-Thread RTOS
|
||||
* COPYRIGHT (C) 2011, RT-Thread Develop Team
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rt-thread.org/license/LICENSE
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2011-03-03 lgnq
|
||||
*/
|
||||
|
||||
#ifndef __LED_H__
|
||||
#define __LED_H__
|
||||
|
||||
#include "mb9bf506r.h"
|
||||
|
||||
#define LEDS_MAX_NUMBER 4
|
||||
|
||||
/* LED */
|
||||
#define USER_LED1 (1UL<<0x9)
|
||||
#define USER_LED2 (1UL<<0xa)
|
||||
#define USER_LED3 (1UL<<0xb)
|
||||
|
||||
#define USER_LED_MASK (USER_LED1 | USER_LED2 | USER_LED3)
|
||||
#define USER_LED_PFR FM3_GPIO->PFR1
|
||||
#define USER_LED_PCR FM3_GPIO->PCR1
|
||||
#define USER_LED_PDOR FM3_GPIO->PDOR1
|
||||
#define USER_LED_DDR FM3_GPIO->DDR1
|
||||
|
||||
#define RT_DEVICE_CTRL_LED_ON 0
|
||||
#define RT_DEVICE_CTRL_LED_OFF 1
|
||||
#define RT_DEVICE_CTRL_LED_TOGGLE 2
|
||||
|
||||
void rt_hw_led_init(void);
|
||||
void rt_hw_led_on(rt_uint8_t num);
|
||||
void rt_hw_led_off(rt_uint8_t num);
|
||||
void rt_hw_led_toggle(rt_uint8_t num);
|
||||
void pwm_update(rt_uint16_t value);
|
||||
|
||||
#endif
|
33
bsp/fm3/mb9b506r/mb9bf506.icf
Normal file
33
bsp/fm3/mb9b506r/mb9bf506.icf
Normal file
@ -0,0 +1,33 @@
|
||||
/*###ICF### Section handled by ICF editor, don't touch! ****/
|
||||
/*-Editor annotation file-*/
|
||||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
|
||||
/*-Specials-*/
|
||||
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
|
||||
/*-Memory Regions-*/
|
||||
define symbol __ICFEDIT_region_ROM_start__ = 0x00000000;
|
||||
define symbol __ICFEDIT_region_ROM_end__ = 0x0007FFFF;
|
||||
define symbol __ICFEDIT_region_RAM_start__ = 0x1FFF8000;
|
||||
define symbol __ICFEDIT_region_RAM_end__ = 0x20007FFF;
|
||||
/*-Sizes-*/
|
||||
define symbol __ICFEDIT_size_cstack__ = 0x400;
|
||||
define symbol __ICFEDIT_size_heap__ = 0;
|
||||
/**** End of ICF editor section. ###ICF###*/
|
||||
|
||||
|
||||
define memory mem with size = 4G;
|
||||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||
|
||||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||
|
||||
initialize by copy { readwrite };
|
||||
do not initialize { section .noinit };
|
||||
|
||||
keep { section FSymTab };
|
||||
keep { section VSymTab };
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
|
||||
place in ROM_region { readonly };
|
||||
place in RAM_region { readwrite,
|
||||
block CSTACK, block HEAP };
|
120
bsp/fm3/mb9b506r/rtconfig.h
Normal file
120
bsp/fm3/mb9b506r/rtconfig.h
Normal file
@ -0,0 +1,120 @@
|
||||
/* RT-Thread config file */
|
||||
#ifndef __RTTHREAD_CFG_H__
|
||||
#define __RTTHREAD_CFG_H__
|
||||
|
||||
/* RT_NAME_MAX*/
|
||||
#define RT_NAME_MAX 8
|
||||
|
||||
/* RT_ALIGN_SIZE*/
|
||||
#define RT_ALIGN_SIZE 4
|
||||
|
||||
/* PRIORITY_MAX */
|
||||
#define RT_THREAD_PRIORITY_MAX 32
|
||||
|
||||
/* Tick per Second */
|
||||
#define RT_TICK_PER_SECOND 100
|
||||
|
||||
/* SECTION: RT_DEBUG */
|
||||
/* Thread Debug */
|
||||
#define RT_DEBUG
|
||||
#define RT_USING_OVERFLOW_CHECK
|
||||
|
||||
/* Using Hook */
|
||||
#define RT_USING_HOOK
|
||||
|
||||
/* SECTION: IPC */
|
||||
/* Using Semaphore */
|
||||
#define RT_USING_SEMAPHORE
|
||||
|
||||
/* Using Mutex */
|
||||
#define RT_USING_MUTEX
|
||||
|
||||
/* Using Event */
|
||||
#define RT_USING_EVENT
|
||||
|
||||
/* Using MailBox */
|
||||
#define RT_USING_MAILBOX
|
||||
|
||||
/* Using Message Queue */
|
||||
#define RT_USING_MESSAGEQUEUE
|
||||
|
||||
/* SECTION: Memory Management */
|
||||
/* Using Memory Pool Management*/
|
||||
#define RT_USING_MEMPOOL
|
||||
|
||||
/* Using Dynamic Heap Management */
|
||||
#define RT_USING_HEAP
|
||||
|
||||
/* Using Small MM */
|
||||
#define RT_USING_SMALL_MEM
|
||||
|
||||
/* SECTION: Device System */
|
||||
/* Using Device System */
|
||||
#define RT_USING_DEVICE
|
||||
/* RT_USING_UART */
|
||||
#define RT_USING_UART2
|
||||
#define RT_UART_RX_BUFFER_SIZE 64
|
||||
|
||||
/* SECTION: Console options */
|
||||
//#define RT_TINY_SIZE
|
||||
#define RT_USING_CONSOLE
|
||||
/* the buffer size of console */
|
||||
#define RT_CONSOLEBUF_SIZE 128
|
||||
|
||||
/* SECTION: finsh, a C-Express shell */
|
||||
/* Using FinSH as Shell*/
|
||||
#define RT_USING_FINSH
|
||||
/* Using symbol table */
|
||||
#define FINSH_USING_SYMTAB
|
||||
#define FINSH_USING_DESCRIPTION
|
||||
#define FINSH_THREAD_STACK_SIZE 4096
|
||||
|
||||
/* SECTION: Device filesystem support */
|
||||
/* using DFS support */
|
||||
/* #define RT_USING_DFS */
|
||||
/* #define RT_USING_DFS_ELMFAT */
|
||||
/* use long file name feature */
|
||||
#define RT_DFS_ELM_USE_LFN 1
|
||||
/* the max number of file length */
|
||||
#define RT_DFS_ELM_MAX_LFN 32
|
||||
/* #define RT_USING_DFS_YAFFS2 */
|
||||
/* #define RT_USING_DFS_UFFS */
|
||||
/* #define RT_USING_DFS_DEVFS */
|
||||
|
||||
//#define RT_USING_DFS_NFS
|
||||
//#define RT_NFS_HOST_EXPORT "192.168.1.5:/"
|
||||
|
||||
#define DFS_USING_WORKDIR
|
||||
|
||||
/* the max number of mounted filesystem */
|
||||
#define DFS_FILESYSTEMS_MAX 4
|
||||
/* the max number of opened files */
|
||||
#define DFS_FD_MAX 16
|
||||
/* the max number of cached sector */
|
||||
#define DFS_CACHE_MAX_NUM 4
|
||||
|
||||
/* SECTION: RTGUI support */
|
||||
/* using RTGUI support */
|
||||
//#define RT_USING_RTGUI
|
||||
|
||||
/* name length of RTGUI object */
|
||||
#define RTGUI_NAME_MAX 16
|
||||
/* support 16 weight font */
|
||||
//#define RTGUI_USING_FONT16
|
||||
/* support 12 weight font */
|
||||
#define RTGUI_USING_FONT12
|
||||
/* support Chinese font */
|
||||
//#define RTGUI_USING_FONTHZ
|
||||
/* use DFS as file interface */
|
||||
//#define RTGUI_USING_DFS_FILERW
|
||||
/* use font file as Chinese font */
|
||||
/* #define RTGUI_USING_HZ_FILE */
|
||||
/* use Chinese bitmap font */
|
||||
//#define RTGUI_USING_HZ_BMP
|
||||
/* use small size in RTGUI */
|
||||
//#define RTGUI_USING_SMALL_SIZE
|
||||
/* use mouse cursor */
|
||||
/* #define RTGUI_USING_MOUSE_CURSOR */
|
||||
#define RTGUI_DEFAULT_FONT_SIZE 12
|
||||
|
||||
#endif
|
283
bsp/fm3/mb9b506r/serial.c
Normal file
283
bsp/fm3/mb9b506r/serial.c
Normal file
@ -0,0 +1,283 @@
|
||||
/*
|
||||
* File : serial.c
|
||||
* This file is part of RT-Thread RTOS
|
||||
* COPYRIGHT (C) 2006, RT-Thread Development Team
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://openlab.rt-thread.com/license/LICENSE
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2006-03-13 Bernard first version
|
||||
* 2009-04-20 yi.qiu modified according bernard's stm32 version
|
||||
*/
|
||||
|
||||
#include <rtthread.h>
|
||||
|
||||
#include "serial.h"
|
||||
|
||||
/**
|
||||
* @addtogroup FM3 MB9B500
|
||||
*/
|
||||
/*@{*/
|
||||
|
||||
/* RT-Thread Device Interface */
|
||||
/**
|
||||
* This function initializes serial
|
||||
*/
|
||||
static rt_err_t rt_serial_init (rt_device_t dev)
|
||||
{
|
||||
struct serial_device* uart = (struct serial_device*) dev->user_data;
|
||||
|
||||
if (!(dev->flag & RT_DEVICE_FLAG_ACTIVATED))
|
||||
{
|
||||
|
||||
if (dev->flag & RT_DEVICE_FLAG_INT_RX)
|
||||
{
|
||||
rt_memset(uart->int_rx->rx_buffer, 0,
|
||||
sizeof(uart->int_rx->rx_buffer));
|
||||
uart->int_rx->read_index = uart->int_rx->save_index = 0;
|
||||
}
|
||||
|
||||
if (dev->flag & RT_DEVICE_FLAG_INT_TX)
|
||||
{
|
||||
rt_memset(uart->int_tx->tx_buffer, 0,
|
||||
sizeof(uart->int_tx->tx_buffer));
|
||||
uart->int_tx->write_index = uart->int_tx->save_index = 0;
|
||||
}
|
||||
|
||||
dev->flag |= RT_DEVICE_FLAG_ACTIVATED;
|
||||
}
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
|
||||
/* save a char to serial buffer */
|
||||
static void rt_serial_savechar(struct serial_device* uart, char ch)
|
||||
{
|
||||
rt_base_t level;
|
||||
|
||||
/* disable interrupt */
|
||||
level = rt_hw_interrupt_disable();
|
||||
|
||||
uart->int_rx->rx_buffer[uart->int_rx->save_index] = ch;
|
||||
uart->int_rx->save_index ++;
|
||||
if (uart->int_rx->save_index >= UART_RX_BUFFER_SIZE)
|
||||
uart->int_rx->save_index = 0;
|
||||
|
||||
/* if the next position is read index, discard this 'read char' */
|
||||
if (uart->int_rx->save_index == uart->int_rx->read_index)
|
||||
{
|
||||
uart->int_rx->read_index ++;
|
||||
if (uart->int_rx->read_index >= UART_RX_BUFFER_SIZE)
|
||||
uart->int_rx->read_index = 0;
|
||||
}
|
||||
|
||||
/* enable interrupt */
|
||||
rt_hw_interrupt_enable(level);
|
||||
}
|
||||
|
||||
static rt_err_t rt_serial_open(rt_device_t dev, rt_uint16_t oflag)
|
||||
{
|
||||
RT_ASSERT(dev != RT_NULL);
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
|
||||
static rt_err_t rt_serial_close(rt_device_t dev)
|
||||
{
|
||||
RT_ASSERT(dev != RT_NULL);
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
|
||||
static rt_size_t rt_serial_read (rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size)
|
||||
{
|
||||
rt_uint8_t* ptr;
|
||||
rt_err_t err_code;
|
||||
struct serial_device* uart;
|
||||
|
||||
ptr = buffer;
|
||||
err_code = RT_EOK;
|
||||
uart = (struct serial_device*)dev->user_data;
|
||||
|
||||
if (dev->flag & RT_DEVICE_FLAG_INT_RX)
|
||||
{
|
||||
rt_base_t level;
|
||||
|
||||
/* interrupt mode Rx */
|
||||
while (size)
|
||||
{
|
||||
if (uart->int_rx->read_index != uart->int_rx->save_index)
|
||||
{
|
||||
*ptr++ = uart->int_rx->rx_buffer[uart->int_rx->read_index];
|
||||
size --;
|
||||
|
||||
/* disable interrupt */
|
||||
level = rt_hw_interrupt_disable();
|
||||
|
||||
uart->int_rx->read_index ++;
|
||||
if (uart->int_rx->read_index >= UART_RX_BUFFER_SIZE)
|
||||
uart->int_rx->read_index = 0;
|
||||
|
||||
/* enable interrupt */
|
||||
rt_hw_interrupt_enable(level);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* set error code */
|
||||
err_code = -RT_EEMPTY;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* polling mode */
|
||||
while ((rt_uint32_t)ptr - (rt_uint32_t)buffer < size)
|
||||
{
|
||||
while (uart->uart_device->SSR & SSR_RDRF)
|
||||
{
|
||||
*ptr = uart->uart_device->RDR & 0xff;
|
||||
ptr ++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* set error code */
|
||||
rt_set_errno(err_code);
|
||||
return (rt_uint32_t)ptr - (rt_uint32_t)buffer;
|
||||
}
|
||||
|
||||
static rt_size_t rt_serial_write (rt_device_t dev, rt_off_t pos, const void* buffer, rt_size_t size)
|
||||
{
|
||||
rt_uint8_t* ptr;
|
||||
rt_err_t err_code;
|
||||
struct serial_device* uart;
|
||||
|
||||
err_code = RT_EOK;
|
||||
ptr = (rt_uint8_t*)buffer;
|
||||
uart = (struct serial_device*)dev->user_data;
|
||||
|
||||
if (dev->flag & RT_DEVICE_FLAG_INT_TX)
|
||||
{
|
||||
/* interrupt mode Tx */
|
||||
while (uart->int_tx->save_index != uart->int_tx->write_index)
|
||||
{
|
||||
/* save on tx buffer */
|
||||
uart->int_tx->tx_buffer[uart->int_tx->save_index] = *ptr++;
|
||||
|
||||
-- size;
|
||||
|
||||
/* move to next position */
|
||||
uart->int_tx->save_index ++;
|
||||
|
||||
/* wrap save index */
|
||||
if (uart->int_tx->save_index >= UART_TX_BUFFER_SIZE)
|
||||
uart->int_tx->save_index = 0;
|
||||
}
|
||||
|
||||
/* set error code */
|
||||
if (size > 0)
|
||||
err_code = -RT_EFULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* polling mode */
|
||||
while (size)
|
||||
{
|
||||
/*
|
||||
* to be polite with serial console add a line feed
|
||||
* to the carriage return character
|
||||
*/
|
||||
if (*ptr == '\n' && (dev->flag & RT_DEVICE_FLAG_STREAM))
|
||||
{
|
||||
while (!(uart->uart_device->SSR & SSR_TDRE));
|
||||
uart->uart_device->TDR = '\r';
|
||||
}
|
||||
|
||||
while (!(uart->uart_device->SSR & SSR_TDRE));
|
||||
uart->uart_device->TDR = (*ptr & 0x1FF);
|
||||
|
||||
++ptr; --size;
|
||||
}
|
||||
}
|
||||
|
||||
/* set error code */
|
||||
rt_set_errno(err_code);
|
||||
|
||||
return (rt_uint32_t)ptr - (rt_uint32_t)buffer;
|
||||
}
|
||||
|
||||
static rt_err_t rt_serial_control (rt_device_t dev, rt_uint8_t cmd, void *args)
|
||||
{
|
||||
RT_ASSERT(dev != RT_NULL);
|
||||
|
||||
switch (cmd)
|
||||
{
|
||||
case RT_DEVICE_CTRL_SUSPEND:
|
||||
/* suspend device */
|
||||
dev->flag |= RT_DEVICE_FLAG_SUSPENDED;
|
||||
break;
|
||||
|
||||
case RT_DEVICE_CTRL_RESUME:
|
||||
/* resume device */
|
||||
dev->flag &= ~RT_DEVICE_FLAG_SUSPENDED;
|
||||
break;
|
||||
}
|
||||
|
||||
return RT_EOK;
|
||||
}
|
||||
|
||||
/*
|
||||
* serial register
|
||||
*/
|
||||
rt_err_t rt_hw_serial_register(rt_device_t device, const char* name, rt_uint32_t flag, struct serial_device *serial)
|
||||
{
|
||||
RT_ASSERT(device != RT_NULL);
|
||||
|
||||
device->type = RT_Device_Class_Char;
|
||||
device->rx_indicate = RT_NULL;
|
||||
device->tx_complete = RT_NULL;
|
||||
device->init = rt_serial_init;
|
||||
device->open = rt_serial_open;
|
||||
device->close = rt_serial_close;
|
||||
device->read = rt_serial_read;
|
||||
device->write = rt_serial_write;
|
||||
device->control = rt_serial_control;
|
||||
device->user_data = serial;
|
||||
|
||||
/* register a character device */
|
||||
return rt_device_register(device, name, RT_DEVICE_FLAG_RDWR | flag);
|
||||
}
|
||||
|
||||
/* ISR for serial interrupt */
|
||||
void rt_hw_serial_isr(rt_device_t device)
|
||||
{
|
||||
struct serial_device* uart = (struct serial_device*) device->user_data;
|
||||
|
||||
/* interrupt mode receive */
|
||||
RT_ASSERT(device->flag & RT_DEVICE_FLAG_INT_RX);
|
||||
|
||||
/* save on rx buffer */
|
||||
while (uart->uart_device->SSR & SSR_RDRF)
|
||||
{
|
||||
rt_serial_savechar(uart, uart->uart_device->RDR & 0xff);
|
||||
}
|
||||
|
||||
/* invoke callback */
|
||||
if (device->rx_indicate != RT_NULL)
|
||||
{
|
||||
rt_size_t rx_length;
|
||||
|
||||
/* get rx length */
|
||||
rx_length = uart->int_rx->read_index > uart->int_rx->save_index ?
|
||||
UART_RX_BUFFER_SIZE - uart->int_rx->read_index + uart->int_rx->save_index :
|
||||
uart->int_rx->save_index - uart->int_rx->read_index;
|
||||
|
||||
device->rx_indicate(device, rx_length);
|
||||
}
|
||||
}
|
||||
|
||||
/*@}*/
|
84
bsp/fm3/mb9b506r/serial.h
Normal file
84
bsp/fm3/mb9b506r/serial.h
Normal file
@ -0,0 +1,84 @@
|
||||
#ifndef __RT_HW_SERIAL_H__
|
||||
#define __RT_HW_SERIAL_H__
|
||||
|
||||
#include <rthw.h>
|
||||
#include <rtthread.h>
|
||||
|
||||
#include "mb9bf506r.h"
|
||||
|
||||
#define SMR_SOE 0x01U
|
||||
#define SMR_BDS 0x04U
|
||||
#define SMR_SBL 0x08U
|
||||
#define SMR_WUCR 0x10U
|
||||
#define SMR_MD_UART 0x00U
|
||||
#define SMR_MD_UART_MP 0x20U
|
||||
#define SMR_MD_SIO 0x40U
|
||||
#define SMR_MD_LIN 0x60U
|
||||
#define SMR_MD_I2C 0x80U
|
||||
|
||||
#define SCR_TXE 0x01U
|
||||
#define SCR_RXE 0x02U
|
||||
#define SCR_TBIE 0x04U
|
||||
#define SCR_TIE 0x08U
|
||||
#define SCR_RIE 0x10U
|
||||
#define SCR_UPGL 0x80U
|
||||
|
||||
#define SSR_TBI 0x01U
|
||||
#define SSR_TDRE 0x02U
|
||||
#define SSR_RDRF 0x04U
|
||||
#define SSR_ORE 0x08U
|
||||
#define SSR_FRE 0x10U
|
||||
#define SSR_PE 0x20U
|
||||
#define SSR_REC 0x80U
|
||||
|
||||
#define ESCR_P 0x08U
|
||||
#define ESCR_PEN 0x10U
|
||||
#define ESCR_INV 0x20U
|
||||
#define ESCR_ESBL 0x40U
|
||||
#define ESCR_FLWEN 0x80U
|
||||
#define ESCR_DATABITS_8 0x00U
|
||||
#define ESCR_DATABITS_5 0x01U
|
||||
#define ESCR_DATABITS_6 0x02U
|
||||
#define ESCR_DATABITS_7 0x03U
|
||||
#define ESCR_DATABITS_9 0x04U
|
||||
|
||||
#define BPS 115200 /* serial baudrate */
|
||||
|
||||
#define UART_RX_BUFFER_SIZE 64
|
||||
#define UART_TX_BUFFER_SIZE 64
|
||||
|
||||
struct serial_int_rx
|
||||
{
|
||||
rt_uint8_t rx_buffer[UART_RX_BUFFER_SIZE];
|
||||
rt_uint32_t read_index, save_index;
|
||||
};
|
||||
|
||||
struct serial_int_tx
|
||||
{
|
||||
rt_uint8_t tx_buffer[UART_TX_BUFFER_SIZE];
|
||||
rt_uint32_t write_index, save_index;
|
||||
};
|
||||
|
||||
/*
|
||||
* Enable/DISABLE Interrupt Controller
|
||||
*/
|
||||
/* deviation from MISRA-C:2004 Rule 19.7 */
|
||||
#define UART_ENABLE_IRQ(n) NVIC_EnableIRQ((n))
|
||||
#define UART_DISABLE_IRQ(n) NVIC_DisableIRQ((n))
|
||||
|
||||
struct serial_device
|
||||
{
|
||||
FM3_MFS03_UART_TypeDef* uart_device;
|
||||
|
||||
/* rx structure */
|
||||
struct serial_int_rx* int_rx;
|
||||
|
||||
/* tx structure */
|
||||
struct serial_int_tx* int_tx;
|
||||
};
|
||||
|
||||
rt_err_t rt_hw_serial_register(rt_device_t device, const char* name, rt_uint32_t flag, struct serial_device *serial);
|
||||
|
||||
void rt_hw_serial_isr(rt_device_t device);
|
||||
|
||||
#endif
|
143
bsp/fm3/mb9b506r/startup.c
Normal file
143
bsp/fm3/mb9b506r/startup.c
Normal file
@ -0,0 +1,143 @@
|
||||
/*
|
||||
* File : startup.c
|
||||
* This file is part of RT-Thread RTOS
|
||||
* COPYRIGHT (C) 2009 - 2011, RT-Thread Development Team
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rt-thread.org/license/LICENSE
|
||||
*
|
||||
* Change Logs:
|
||||
* Date Author Notes
|
||||
* 2011-02-24 Bernard first implementation
|
||||
*/
|
||||
|
||||
#include <rthw.h>
|
||||
#include <rtthread.h>
|
||||
|
||||
#include "board.h"
|
||||
#include "mb9bf506r.h"
|
||||
#ifdef RT_USING_FINSH
|
||||
#include <finsh.h>
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @addtogroup FM3
|
||||
*/
|
||||
|
||||
extern struct serial_device uart0;
|
||||
extern struct rt_device uart0_device;
|
||||
extern struct serial_device uart2;
|
||||
extern struct rt_device uart2_device;
|
||||
|
||||
/*@{*/
|
||||
|
||||
extern int rt_application_init(void);
|
||||
#ifdef RT_USING_FINSH
|
||||
extern void finsh_system_init(void);
|
||||
#endif
|
||||
|
||||
#ifdef __CC_ARM
|
||||
extern int Image$$RW_IRAM1$$ZI$$Limit;
|
||||
#elif __ICCARM__
|
||||
#pragma section="HEAP"
|
||||
#else
|
||||
extern int __bss_end;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* This function will startup RT-Thread RTOS.
|
||||
*/
|
||||
void rtthread_startup(void)
|
||||
{
|
||||
/* init board */
|
||||
rt_hw_board_init();
|
||||
|
||||
/* show version */
|
||||
rt_show_version();
|
||||
|
||||
/* init tick */
|
||||
rt_system_tick_init();
|
||||
|
||||
/* init kernel object */
|
||||
rt_system_object_init();
|
||||
|
||||
/* init timer system */
|
||||
rt_system_timer_init();
|
||||
|
||||
#ifdef RT_USING_HEAP
|
||||
#ifdef __CC_ARM
|
||||
rt_system_heap_init((void*)&Image$$RW_IRAM1$$ZI$$Limit, (void*)FM3_SRAM_END);
|
||||
#elif __ICCARM__
|
||||
rt_system_heap_init(__segment_end("HEAP"), (void*)FM3_SRAM_END);
|
||||
#else
|
||||
/* init memory system */
|
||||
rt_system_heap_init((void*)&__bss_end, (void*)FM3_SRAM_END);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* init scheduler system */
|
||||
rt_system_scheduler_init();
|
||||
|
||||
#ifdef RT_USING_DEVICE
|
||||
/* register uart0 */
|
||||
rt_hw_serial_register(&uart0_device, "uart0",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_STREAM,
|
||||
&uart0);
|
||||
|
||||
/* register uart2, used for RTI debug */
|
||||
rt_hw_serial_register(&uart2_device, "uart2",
|
||||
RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_STREAM,
|
||||
&uart2);
|
||||
|
||||
#ifdef RT_USING_DFS
|
||||
#ifdef RT_USING_DFS_UFFS
|
||||
rt_hw_nand_init();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*init all registed devices */
|
||||
rt_device_init_all();
|
||||
#endif
|
||||
|
||||
/* init application */
|
||||
rt_application_init();
|
||||
|
||||
#ifdef RT_USING_FINSH
|
||||
/* init finsh */
|
||||
finsh_system_init();
|
||||
#ifdef RT_USING_DEVICE
|
||||
finsh_set_device("uart2");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* init timer thread */
|
||||
rt_system_timer_thread_init();
|
||||
|
||||
/* init idle thread */
|
||||
rt_thread_idle_init();
|
||||
|
||||
/* start scheduler */
|
||||
rt_system_scheduler_start();
|
||||
|
||||
/* never reach here */
|
||||
return ;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
rt_uint32_t UNUSED level;
|
||||
|
||||
/* disable interrupt first */
|
||||
level = rt_hw_interrupt_disable();
|
||||
|
||||
/* init system setting */
|
||||
SystemInit();
|
||||
|
||||
/* startup RT-Thread RTOS */
|
||||
rtthread_startup();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*@}*/
|
@ -49,6 +49,7 @@
|
||||
IMPORT rt_hw_hard_fault
|
||||
IMPORT rt_hw_pend_sv
|
||||
IMPORT rt_hw_timer_handler
|
||||
IMPORT rt_hw_uart2_rx_handler
|
||||
|
||||
PUBLIC __low_level_init
|
||||
|
||||
@ -108,7 +109,7 @@ __vector_table
|
||||
DCD EXTI2_IRQHandler ; EXTI Line 2
|
||||
DCD EXTI3_IRQHandler ; EXTI Line 3
|
||||
DCD EXTI4_IRQHandler ; EXTI Line 4
|
||||
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
|
||||
DCD rt_hw_uart2_rx_handler
|
||||
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
|
||||
DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
|
||||
DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
|
||||
|
Loading…
x
Reference in New Issue
Block a user