Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
天中雨水
rt-thread
提交
82bc21ff
R
rt-thread
项目概览
天中雨水
/
rt-thread
该项目与 Fork 源项目分叉
Fork自
RT-Thread / rt-thread
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
82bc21ff
编写于
7月 17, 2013
作者:
P
Peng Fan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Cleanup and add licencse
上级
73beced2
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
274 addition
and
332 deletion
+274
-332
bsp/sep6200/application/application.c
bsp/sep6200/application/application.c
+15
-19
bsp/sep6200/application/startup.c
bsp/sep6200/application/startup.c
+17
-21
bsp/sep6200/board.h
bsp/sep6200/board.h
+14
-5
bsp/sep6200/drivers/board.c
bsp/sep6200/drivers/board.c
+21
-20
bsp/sep6200/rtconfig.h
bsp/sep6200/rtconfig.h
+14
-14
bsp/sep6200/rtconfig.py
bsp/sep6200/rtconfig.py
+3
-6
libcpu/unicore32/sep6200/clk.c
libcpu/unicore32/sep6200/clk.c
+0
-164
libcpu/unicore32/sep6200/context_gcc.S
libcpu/unicore32/sep6200/context_gcc.S
+18
-7
libcpu/unicore32/sep6200/cpu.c
libcpu/unicore32/sep6200/cpu.c
+15
-5
libcpu/unicore32/sep6200/interrupt.c
libcpu/unicore32/sep6200/interrupt.c
+15
-5
libcpu/unicore32/sep6200/sep6200.h
libcpu/unicore32/sep6200/sep6200.h
+24
-0
libcpu/unicore32/sep6200/serial.c
libcpu/unicore32/sep6200/serial.c
+15
-5
libcpu/unicore32/sep6200/serial.h
libcpu/unicore32/sep6200/serial.h
+15
-5
libcpu/unicore32/sep6200/stack.c
libcpu/unicore32/sep6200/stack.c
+15
-5
libcpu/unicore32/sep6200/start_gcc.S
libcpu/unicore32/sep6200/start_gcc.S
+36
-47
libcpu/unicore32/sep6200/trace.c
libcpu/unicore32/sep6200/trace.c
+23
-0
libcpu/unicore32/sep6200/trap.c
libcpu/unicore32/sep6200/trap.c
+14
-4
未找到文件。
bsp/sep6200/application/application.c
浏览文件 @
82bc21ff
/*
* File : application.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006 - 201
2
, RT-Thread Development Team
* COPYRIGHT (C) 2006 - 201
3
, 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
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2007-11-20 Yi.Qiu add rtgui application
* 2008-6-28 Bernard no rtgui init
* 2013-7-14 Peng Fan modified from mini4020
* 2013-7-14 Peng Fan Simple application
*/
/**
...
...
@@ -23,18 +31,6 @@
#include "board.h"
#include <rtthread.h>
#ifdef RT_USING_DFS
#include <dfs_init.h>
#include <dfs_elm.h>
#include <dfs_fs.h>
#include <dfs_posix.h>
#endif
#ifdef RT_USING_RTGUI
#include <rtgui/rtgui.h>
extern
void
radio_rtgui_init
(
void
);
#endif
#define RT_INIT_THREAD_STACK_SIZE (2*1024)
void
rt_init_thread_entry
(
void
*
parameter
)
...
...
bsp/sep6200/application/startup.c
浏览文件 @
82bc21ff
/*
* File :
application
.c
* File :
startup
.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 200
9 - 2012
, RT-Thread Development Team
* COPYRIGHT (C) 200
6 - 2013
, 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
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
...
...
@@ -71,12 +81,11 @@ void rtthread_startup()
#ifdef RT_USING_DEVICE
#ifdef RT_USING_DFS
rt_hw_sdcard_init
();
/* Not implemented */
#endif
#ifdef RT_USING_LWIP
eth_system_device_init
();
rt_hw_dm9000_init
();
/* Not implemented */
#endif
/*init all registed devices */
...
...
@@ -106,16 +115,3 @@ void rtthread_startup()
return
;
}
int
main
()
{
rt_uint32_t
UNUSED
level
;
/* disable interrupt first */
level
=
rt_hw_interrupt_disable
();
/* startup RT-Thread RTOS */
rtthread_startup
();
return
0
;
}
bsp/sep6200/board.h
浏览文件 @
82bc21ff
/*
* File : board.h
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 200
9 - 2012
, RT-Thread Development Team
* COPYRIGHT (C) 200
6 - 2013
, 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
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
...
...
@@ -20,6 +30,5 @@
#include <sep6200.h>
void
rt_hw_board_init
(
void
);
void
rt_hw_sdcard_init
(
void
);
#endif
bsp/sep6200/drivers/board.c
浏览文件 @
82bc21ff
/*
* File : board.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006 - 201
2 RT-Thread Develop
Team
* COPYRIGHT (C) 2006 - 201
3, 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
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2013-7-14 Peng Fan sep6200 implementation
*/
/**
* @addtogroup sep6200
*/
/*@{*/
#include <rthw.h>
#include <rtthread.h>
...
...
@@ -49,7 +64,6 @@ void rt_timer_handler(int vector, void *param)
/*
* This function will handle serial interrupt
*/
#if 1
void
rt_serial_handler
(
int
vector
,
void
*
param
)
{
rt_uint32_t
num
;
...
...
@@ -76,12 +90,10 @@ void rt_serial_handler(int vector, void *param)
break
;
}
}
#endif
/*
* This function will init timer2 for system ticks
*/
#define BUS4_FREQ 320000000UL
#define TIMER_CLK BUS4_FREQ
#define HZ 100
...
...
@@ -147,19 +159,6 @@ void rt_hw_serial_putc(const char c)
*
(
RP
)(
SEP6200_UART0_TXFIFO
)
=
c
;
}
void
printhex
(
unsigned
int
data
)
{
int
i
=
0
,
a
=
0
;
for
(
i
=
0
;
i
<
8
;
i
++
)
{
a
=
(
data
>>
(
32
-
(
i
+
1
)
*
4
))
&
0xf
;
if
(((
a
<=
9
)
&&
(
a
>=
0
)))
rt_hw_serial_putc
(
a
+
0x30
);
else
if
((
a
<=
0xf
)
&&
(
a
>=
0xa
))
rt_hw_serial_putc
(
a
-
0xa
+
0x61
);
}
rt_hw_serial_putc
(
'\n'
);
}
/**
* This function is used by rt_kprintf to display a string on console.
*
...
...
@@ -171,3 +170,5 @@ void rt_hw_console_output(const char *str)
rt_hw_serial_putc
(
*
str
++
);
}
}
/*@}*/
bsp/sep6200/rtconfig.h
浏览文件 @
82bc21ff
...
...
@@ -3,16 +3,16 @@
#define __RTTHREAD_CFG_H__
#define RT_DEBUG
/
/#define RT_DEBUG_IRQ 1
/
/#define RT_DEBUG_TIMER 1
/
* #define RT_DEBUG_IRQ 1 */
/
* #define RT_DEBUG_TIMER 1 */
/
/#define RT_DEBUG_MEM 1
/
/#define RT_DEBUG_MEMHEAP 1
/
/#define RT_DEBUG_MODULE 1
/
/#define RT_DEBUG_SCHEDULER 1
/
/#define RT_DEBUG_SLAB 1
/
/#define RT_DEBUG_THREAD 1
/
/#define RT_DEBUG_IPC 1
/
* #define RT_DEBUG_MEM 1 */
/
* #define RT_DEBUG_MEMHEAP 1 */
/
* #define RT_DEBUG_MODULE 1 */
/
* #define RT_DEBUG_SCHEDULER 1 */
/
* #define RT_DEBUG_SLAB 1 */
/
* #define RT_DEBUG_THREAD 1 */
/
* #define RT_DEBUG_IPC 1 */
/* RT_NAME_MAX*/
#define RT_NAME_MAX 8
...
...
@@ -37,7 +37,7 @@
#define RT_USING_HOOK
/* Using Software Timer */
//
#define RT_USING_TIMER_SOFT
#define RT_USING_TIMER_SOFT
#define RT_TIMER_THREAD_PRIO 8
#define RT_TIMER_THREAD_STACK_SIZE 512
#define RT_TIMER_TICK_PER_SECOND 10
...
...
@@ -98,8 +98,8 @@
/* SECTION: Device filesystem support */
/* using DFS support */
/
/#define RT_USING_DFS //fanpeng
/
/#define RT_USING_DFS_ELMFAT //fanpeng
/
* #define RT_USING_DFS */
/
* #define RT_USING_DFS_ELMFAT */
/* #define RT_USING_DFS_YAFFS2 */
/* #define DFS_USING_WORKDIR */
...
...
@@ -113,8 +113,8 @@
/* SECTION: lwip, a lighwight TCP/IP protocol stack */
/* Using lighweight TCP/IP protocol stack */
/
/#define RT_USING_LWIP
/
/#define RT_LWIP_DNS
/
* #define RT_USING_LWIP */
/
* #define RT_LWIP_DNS */
/* Trace LwIP protocol */
/* #define RT_LWIP_DEBUG */
...
...
bsp/sep6200/rtconfig.py
浏览文件 @
82bc21ff
...
...
@@ -3,7 +3,7 @@ import os
# toolchains options
ARCH
=
'unicore32'
CPU
=
'sep6200'
TextBase
=
'0x
0
0000000'
TextBase
=
'0x
4
0000000'
CROSS_TOOL
=
'gcc'
...
...
@@ -13,10 +13,7 @@ if os.getenv('RTT_CC'):
if
CROSS_TOOL
==
'gcc'
:
PLATFORM
=
'gcc'
EXEC_PATH
=
'/usr/unicore/gnu-toolchain-unicore/uc4-1.0-beta-hard-RHELAS5/bin/'
elif
CROSS_TOOL
==
'keil'
:
PLATFORM
=
'armcc'
EXEC_PATH
=
'C:/Keil'
elif
CROSS_TOOL
==
'iar'
:
else
:
print
'================ERROR============================'
print
'Not support yet!'
print
'================================================='
...
...
@@ -43,7 +40,7 @@ if PLATFORM == 'gcc':
DEVICE
=
' '
CFLAGS
=
DEVICE
AFLAGS
=
' -c'
+
DEVICE
+
' -x assembler-with-cpp'
+
' -DTEXT_BASE='
+
TextBase
LFLAGS
=
DEVICE
+
' -Bstatic --gc-sections -Map=rtthread_sep6200.map -cref -u _start -T
text 0x40000000 -T
sep6200.ld -L/usr/unicore/gnu-toolchain-unicore/uc4-1.0-beta-hard-RHELAS5/lib/gcc/unicore32-linux/4.4.2 -lgcc'
+
' -Ttext '
+
TextBase
LFLAGS
=
DEVICE
+
' -Bstatic --gc-sections -Map=rtthread_sep6200.map -cref -u _start -T sep6200.ld -L/usr/unicore/gnu-toolchain-unicore/uc4-1.0-beta-hard-RHELAS5/lib/gcc/unicore32-linux/4.4.2 -lgcc'
+
' -Ttext '
+
TextBase
CPATH
=
''
LPATH
=
''
...
...
libcpu/unicore32/sep6200/clk.c
已删除
100644 → 0
浏览文件 @
73beced2
/*
* File : clock.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
* 2013-7-16 Peng Fan Just put the file here, should be implemented in
* future
*/
#include <rtthread.h>
#include <sep6200.h>
#define PLL_CFG(_f, _r) {.f = _f, .r = _r}
/*f(frequency, MHz); r(config register value)*/
#define MHz 1000000UL
/*
*SEP0611_CLOCK
*├── APLL
*│ └── CPU
*├── DPLL
*│ └── DDR
*└── MPLL
* └── BUS1
* ├── BUS2
* │ ├── DMAC1
* │ ├── ESRAM
* │ ├── LCDC
* │ ├── NAND
* │ ├── NOR
* │ ├── SDIO1
* │ ├── SDIO2
* │ └── VPU
* ├── BUS3
* │ ├── BUS5
* │ │ ├── I2C1
* │ │ ├── I2C2
* │ │ ├── I2C3
* │ │ ├── I2S
* │ │ ├── SPI1
* │ │ ├── SPI2
* │ │ ├── SPI3
* │ │ ├── UART1
* │ │ ├── UART2
* │ │ ├── UART3
* │ │ └── UART4
* │ ├── DMAC2
* │ ├── GPU
* │ └── USB
* ├── BUS4
* │ ├── GPIO
* │ ├── GPSCTRL
* │ ├── PWM
* │ ├── RTC
* │ ├── SYSCTRL
* │ ├── TIMER
* │ └── VIC
* ├── DS1_2
* ├── DS1_3
* └── GPS
*/
enum
sep0611_clk_gate
{
DDRC
=
0
,
BUS1
,
BUS2
,
BUS3
,
DS1_2
,
DS1_3
,
USBC
,
DMAC1
,
NAND
,
DMAC2
,
ESRAM
,
SDIO1
,
SDIO2
,
GPU
,
VPU
,
BUS4
,
BUS5
,
VIC_
,
SYSCTRL
,
PRTC
,
TIMER
,
GPSCTRL
,
GPIO
,
LCDC2HDMI
,
DDRPHY
,
UART1
,
UART2
,
UART3
,
UART4
,
SPI1
,
SPI2
,
SPI3
,
I2C1
=
32
,
I2C2
,
I2C3
,
I2S
,
PWM
,
H2X
,
LCDC
,
NOR
,
GPSHCLK
,
GPS
,
};
typedef
struct
{
unsigned
long
f
;
unsigned
long
r
;
}
pll_t
;
static
pll_t
apll_tab
[]
=
{
PLL_CFG
(
800
*
MHz
,
0x00010810
),
};
static
pll_t
mpll_tab
[]
=
{
PLL_CFG
(
480
*
MHz
,
0x00013C12
),
// 480MHz
};
static
pll_t
dpll_tab
[]
=
{
PLL_CFG
(
400
*
MHz
,
0x00010812
),
// 402MHz
};
static
void
rt_hw_set_system_clock
(
void
)
{
/*apll, mpll, dpll is set in uboot when system boots up*/
}
static
void
rt_hw_set_usb_clock
(
void
)
{
}
static
void
rt_hw_set_peripheral_clock
(
void
)
{
}
/**
* @brief System Clock Configuration
*/
/* apll mpll dpll should be set in u-boot, Here just set clock
* of the pherial
*/
void
rt_hw_set_apll_clock
(
void
)
{
}
void
rt_hw_set_mpll_clock
(
void
)
{
}
void
rt_hw_set_dpll_clock
(
void
)
{
}
void
rt_hw_clock_init
(
void
)
{
/* set system clock */
rt_hw_set_system_clock
();
}
/**
* @brief Get system clock
*/
rt_uint32_t
rt_hw_get_clock
(
void
)
{
}
/**
* @brief Enable module clock
*/
void
rt_hw_enable_module_clock
(
rt_uint8_t
module
)
{
if
(
module
>=
32
)
{
write_reg
(
SEP6200_PMU_CLK_GT_CFG2
,
(
1
<<
(
module
-
32
))
|
read_reg
(
SEP6200_PMU_CLK_GT_CFG2
));
}
else
{
write_reg
(
SEP6200_PMU_CLK_GT_CFG1
,
(
1
<<
module
)
|
read_reg
(
SEP6200_PMU_CLK_GT_CFG1
));
}
}
/**
* @brief Disable module clock
*/
void
rt_hw_disable_module_clock
(
rt_uint8_t
module
)
{
if
(
module
>=
32
)
{
write_reg
(
SEP6200_PMU_CLK_GT_CFG2
,
~
(
1
<<
(
module
-
32
))
&
read_reg
(
SEP6200_PMU_CLK_GT_CFG2
));
}
else
{
write_reg
(
SEP6200_PMU_CLK_GT_CFG1
,
~
(
1
<<
module
)
&
read_reg
(
SEP6200_PMU_CLK_GT_CFG1
));
}
}
libcpu/unicore32/sep6200/context_gcc.S
浏览文件 @
82bc21ff
/*
*
File
:
context
.
S
*
File
:
context
_gcc
.
S
*
This
file
is
part
of
RT
-
Thread
RTOS
*
COPYRIGHT
(
C
)
2006
,
RT
-
Thread
Development
Team
*
COPYRIGHT
(
C
)
2006
-
2013
,
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
*
This
program
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 2 of the License, or
*
(
at
your
option
)
any
later
version
.
*
*
This
program
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, write to the Free Software Foundation, Inc.,
*
51
Franklin
Street
,
Fifth
Floor
,
Boston
,
MA
02110
-
1301
USA
.
*
*
Change
Logs
:
*
Date
Author
Notes
*
2013
-
7
-
14
Peng
Fan
First
implementation
*
2013
-
7
-
14
Peng
Fan
sep6200
implementation
*/
/*
!
/*
*
*
\
addtogroup
sep6200
*/
/*@{*/
#define NOINT 0xc0
...
...
libcpu/unicore32/sep6200/cpu.c
浏览文件 @
82bc21ff
/*
* File : cpu.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006
, RT-Thread Develop
Team
* COPYRIGHT (C) 2006
- 2013, 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
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2013-7-14 Peng Fan
first
implementation
* 2013-7-14 Peng Fan
sep6200
implementation
*/
#include <rthw.h>
...
...
libcpu/unicore32/sep6200/interrupt.c
浏览文件 @
82bc21ff
/*
* File : interrupt.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006, RT-Thread Development Team
* COPYRIGHT (C) 2006
- 2013
, 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
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2013-7-14 Peng Fan
First
implementation
* 2013-7-14 Peng Fan
sep6200
implementation
*/
#include <rtthread.h>
...
...
libcpu/unicore32/sep6200/sep6200.h
浏览文件 @
82bc21ff
/*
* File : sep6200.h
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team
*
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2013-7-17 Peng Fan sep6200 implementation
*/
#ifndef __SEP6200_H
#define __SEP6200_H
...
...
libcpu/unicore32/sep6200/serial.c
浏览文件 @
82bc21ff
/*
* File : serial.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006, RT-Thread Development Team
* COPYRIGHT (C) 2006
- 2013
, 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
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
...
...
@@ -16,7 +26,7 @@
#include "serial.h"
/**
* @addtogroup
SEP
6200
* @addtogroup
sep
6200
*/
/*@{*/
...
...
libcpu/unicore32/sep6200/serial.h
浏览文件 @
82bc21ff
/*
* File : serial.
c
* File : serial.
h
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006, RT-Thread Development Team
* COPYRIGHT (C) 2006
- 2013
, 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
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
...
...
libcpu/unicore32/sep6200/stack.c
浏览文件 @
82bc21ff
/*
* File : stack.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006, RT-Thread Development Team
* COPYRIGHT (C) 2006
- 2013
, 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
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2013-7-14 Peng Fan
Modifiled from sep4020
* 2013-7-14 Peng Fan
sep6200 implementation
*/
#include <rtthread.h>
...
...
libcpu/unicore32/sep6200/start_gcc.S
浏览文件 @
82bc21ff
/*
*
File
:
start
.
S
*
This
file
is
part
of
RT
-
Thread
RTOS
*
COPYRIGHT
(
C
)
2006
,
RT
-
Thread
Development
Team
*
COPYRIGHT
(
C
)
2006
-
2013
,
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
*
This
program
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 2 of the License, or
*
(
at
your
option
)
any
later
version
.
*
*
This
program
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, write to the Free Software Foundation, Inc.,
*
51
Franklin
Street
,
Fifth
Floor
,
Boston
,
MA
02110
-
1301
USA
.
*
*
Change
Logs
:
*
Date
Author
Notes
...
...
@@ -61,10 +71,6 @@
.
equ
MODEMASK
,
0x1f
.
equ
NOINT
,
0xc0
.
equ
RAM_BASE
,
0x00000000
/*
Start
address
of
RAM
*/
/*
************************************************************************
*
*
...
...
@@ -127,13 +133,12 @@ _bss_end:
.
globl
IRQ_STACK_START
IRQ_STACK_START
:
.
word
_irq_stack_start
+
1024
0
-
4
.
word
_irq_stack_start
+
1024
.
globl
FIQ_STACK_START
FIQ_STACK_START
:
.
word
_fiq_stack_start
+
1024
/*
peng
not
sure
*/
.
globl
UNDEFINED_STACK_START
UNDEFINED_STACK_START
:
.
word
_undefined_stack_start
+
CONFIG_STACKSIZE
...
...
@@ -144,7 +149,7 @@ ABORT_STACK_START:
.
globl
_STACK_START
_STACK_START
:
.
word
_priv_stack_start
+
4096
0
-
4
.
word
_priv_stack_start
+
4096
.
equ
SEP6200_VIC_BASE
,
0xb0000000
.
equ
SEP6200_SYSCTL_BASE
,
0xb0008000
...
...
@@ -176,6 +181,7 @@ reset:
/
*
setup
stack
*/
b.l
stack_setup
/
*
copy
the
vector
code
to
address
0
*/
ldw
r12
,
=
0x100
ldw
r0
,
=
0x40000000
ldw
r1
,
=
0x00000000
...
...
@@ -220,7 +226,7 @@ ctor_end:
andn
r1
,
r0
,
#
NOINT
mov.a
asr
,
r1
/
*
start
RT
-
Thread
Kernel
*/
/
*
start
RT
-
Thread
Kernel
*/
ldw
pc
,
_rtthread_startup
_rtthread_startup
:
...
...
@@ -235,18 +241,18 @@ _rtthread_startup:
*/
/*
exception
handlers
*/
/*
Just
simple
implementation
here
peng
*/
/*
Just
simple
implementation
here
*/
.
align
5
extend_handle
:
b
extend_handle
b
rt_hw_trap_extn
swi_handle
:
b
swi_handle
b
rt_hw_trap_swi
iabort_handle
:
b
iabort_handle
b
rt_hw_trap_pabt
dabort_handle
:
b
dabort_handle
b
rt_hw_trap_dabt
reserve_handle
:
b
r
eserve_handle
b
r
t_hw_trap_resv
.
globl
rt_interrupt_enter
.
globl
rt_interrupt_leave
...
...
@@ -276,9 +282,7 @@ IRQ_handle:
.
align
5
FIQ_handle
:
mov
r0
,
#
0x44
b.l
printhex
mov
pc
,
lr
b
rt_hw_trap_fiq
_interrupt_thread_switch
:
...
...
@@ -290,21 +294,12 @@ _interrupt_thread_switch:
ldm.w
(
r16
-
r28
),
[
sp
]+
ldm.w
(
lr
),
[
sp
]+
stm.w
(
r0
-
r3
),
[
sp
-]
/*
save
r0
-
r3
*/
stm.w
(
r0
-
r3
),
[
sp
-]
/*
save
r0
-
r3
*/
mov
r1
,
sp
add
sp
,
sp
,
#
16
/*
restore
sp
*/
mov
r2
,
lr
/*
save
old
task
's pc to r2 */
#if 0
mov
r3
,
bsr
/*
disable
interrupt
*/
/*
or
r0
,
r3
,
#
NOINT
*/
mov.a
bsr
,
r3
ldw
r0
,
=
.
+
8
/*
switch
to
interrupted
task
's stack */
mov.a
pc
,
r0
/*
switch
bsr
to
asr
,
irq
to
priv
mode
*/
#endif
mov
r3
,
bsr
mov
r0
,
#
0xd3
/*
I
:
F
:
0
:
PRIV
*/
mov.a
asr
,
r0
...
...
@@ -312,23 +307,24 @@ _interrupt_thread_switch:
stm.w
(
r2
),
[
sp
-]
/*
push
old
task
's pc */
/
*
push
old
task
's registers */
stm.w
(
r16
,
r17
,
r18
,
r19
,
r20
,
r21
,
r22
,
r23
,
r24
,
r25
,
r26
,
r27
,
r28
,
lr
),
[
sp
-]
stm.w
(
r4
,
r5
,
r6
,
r7
,
r8
,
r9
,
r10
,
r11
,
r12
,
r13
,
r14
,
r15
),
[
sp
-]
stm.w
(
lr
),
[
sp
-]
stm.w
(
r16
-
r28
),
[
sp
-]
stm.w
(
r4
-
r15
),
[
sp
-]
mov
r4
,
r1
/*
Special
optimised
code
below
*/
mov
r5
,
r3
/*
pengpengpengpeng
*/
ldm.w
(
r0
,
r1
,
r2
,
r3
),
[
r4
]+
stm.w
(
r0
,
r1
,
r2
,
r3
),
[
sp
-]
/*
push
old
task
's r3-r0*/
mov
r5
,
r3
ldm.w
(
r0
-
r3
),
[
r4
]+
stm.w
(
r0
-
r3
),
[
sp
-]
/*
push
old
task
's r3-r0*/
stm.w
(
r5
),
[
sp
-]
/*
push
old
task
's asr */
mov
r4
,
bsr
stm.w
(
r4
),
[
sp
-]
/*
push
old
task
's bsr I am not sure peng
*/
mov
r4
,
bsr
stm.w
(
r4
),
[
sp
-]
/*
push
old
task
's bsr
*/
ldw
r4
,
=
rt_interrupt_from_thread
ldw
r5
,
[
r4
+]
stw
sp
,
[
r5
+]
/*
store
sp
in
preempted
tasks
's TCB*/
stw
sp
,
[
r5
+]
/*
store
sp
in
preempted
tasks
's TCB*/
ldw
r6
,
=
rt_interrupt_to_thread
ldw
r6
,
[
r6
+]
ldw
sp
,
[
r6
+]
/*
get
new
task
's stack pointer */
ldw
sp
,
[
r6
+]
/*
get
new
task
's stack pointer */
ldm.w
(
r4
),
[
sp
]+
/*
pop
new
task
's spsr */
mov.a
bsr
,
r4
...
...
@@ -340,14 +336,7 @@ _interrupt_thread_switch:
ldm.w
(
r0
-
r15
),
[
sp
]+
ldm.w
(
r16
-
r28
),
[
sp
]+
ldm.w
(
lr
),
[
sp
]+
/*
peng
*/
ldm.w
(
pc
),
[
sp
]+
#if 0
mov
r0
,
lr
b.l
printhex
ldm.w
(
r0
),
[
sp
]+
b.l
printhex
#endif
stack_setup
:
/*
irq
*/
...
...
libcpu/unicore32/sep6200/trace.c
浏览文件 @
82bc21ff
/*
* File : trace.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team
*
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
* 2017-07-17 Peng Fan sep6200 implementation
*/
#include <rtthread.h>
void
rt_hw_backtrace
(
rt_uint32_t
*
fp
,
rt_uint32_t
thread_entry
)
...
...
libcpu/unicore32/sep6200/trap.c
浏览文件 @
82bc21ff
/*
* File : trap.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006, RT-Thread Development Team
* COPYRIGHT (C) 2006
- 2013
, 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
* This program 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 2 of the License, or
* (at your option) any later version.
*
* This program 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, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Change Logs:
* Date Author Notes
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录