summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGFWisshit <[email protected]>2020-10-20 17:28:59 +0800
committerGFWisshit <[email protected]>2020-10-20 17:32:26 +0800
commitc1f4d6c691498287830af97679548d4c83c3ca02 (patch)
tree91de2e2130662945f81bf71ffce1a4c433ee93eb
parent7f330c7b79ee1d3b2b5c167d67ec6773887b57c3 (diff)
修改license header,修改driver目录下的SConscript。
-rw-r--r--bsp/bm3803/applications/board.c54
-rw-r--r--bsp/bm3803/applications/board.h30
-rw-r--r--bsp/bm3803/applications/main.c20
-rw-r--r--bsp/bm3803/drivers/SConscript13
-rw-r--r--bsp/bm3803/drivers/uart.c78
-rw-r--r--bsp/bm3803/drivers/uart.h30
-rw-r--r--bsp/bm3803/drivers/uart_reg.h28
-rw-r--r--libcpu/sparc-v8/bm3803/bm3803.h151
-rw-r--r--libcpu/sparc-v8/bm3803/context_gcc.S26
-rw-r--r--libcpu/sparc-v8/bm3803/interrupt.c44
-rw-r--r--libcpu/sparc-v8/bm3803/interrupt.h26
-rw-r--r--libcpu/sparc-v8/bm3803/stack.c83
-rw-r--r--libcpu/sparc-v8/bm3803/start_gcc.S26
-rw-r--r--libcpu/sparc-v8/bm3803/trap.c42
-rw-r--r--libcpu/sparc-v8/bm3803/vector_gcc.S26
15 files changed, 406 insertions, 271 deletions
diff --git a/bsp/bm3803/applications/board.c b/bsp/bm3803/applications/board.c
index 043fceda03..ee400cc0e1 100644
--- a/bsp/bm3803/applications/board.c
+++ b/bsp/bm3803/applications/board.c
@@ -1,16 +1,22 @@
/*
- * File : board.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2020, Shenzhen Academy of Aerospace Technology
- *
- * 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
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
#include <rthw.h>
#include <rtthread.h>
@@ -21,27 +27,27 @@
extern int __bss_end;
-static void rt_hw_timer_isr(int vector, void* param)
+static void rt_hw_timer_isr(int vector, void *param)
{
- rt_tick_increase();
- /* timer interrupt cleared by hardware */
+ rt_tick_increase();
+ /* timer interrupt cleared by hardware */
}
int rt_hw_timer_init(void)
{
- unsigned int counter = 1000000 / RT_TICK_PER_SECOND;
- volatile struct lregs *regs = (struct lregs*)PREGS;
-
+ unsigned int counter = 1000000 / RT_TICK_PER_SECOND;
+ volatile struct lregs *regs = (struct lregs *)PREGS;
+
regs->scalercnt = CPU_FREQ / 1000000 - 1;
regs->scalerload = CPU_FREQ / 1000000 - 1;
regs->timercnt2 = counter - 1;
regs->timerload2 = counter - 1;
- rt_hw_interrupt_install(TIMER2_TT, rt_hw_timer_isr, RT_NULL, "tick");
- rt_hw_interrupt_umask(TIMER2_TT);
+ rt_hw_interrupt_install(TIMER2_TT, rt_hw_timer_isr, RT_NULL, "tick");
+ rt_hw_interrupt_umask(TIMER2_TT);
- /* start timer */
- regs->timerctrl2 = 0x7;
+ /* start timer */
+ regs->timerctrl2 = 0x7;
return 0;
}
@@ -52,7 +58,7 @@ INIT_BOARD_EXPORT(rt_hw_timer_init);
*/
void rt_hw_board_init(void)
{
- rt_system_heap_init((void*)&__bss_end, (void*)&__bss_end + 0x01000000);
+ rt_system_heap_init((void *)&__bss_end, (void *)&__bss_end + 0x01000000);
rt_components_board_init();
- rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
+ rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
}
diff --git a/bsp/bm3803/applications/board.h b/bsp/bm3803/applications/board.h
index becb93cf3b..88d477e492 100644
--- a/bsp/bm3803/applications/board.h
+++ b/bsp/bm3803/applications/board.h
@@ -1,16 +1,22 @@
/*
- * File : board.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2020, Shenzhen Academy of Aerospace Technology
- *
- * 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
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
#ifndef __BOARD_H__
#define __BOARD_H__
diff --git a/bsp/bm3803/applications/main.c b/bsp/bm3803/applications/main.c
index d77e7a2a8b..e24fdf2b90 100644
--- a/bsp/bm3803/applications/main.c
+++ b/bsp/bm3803/applications/main.c
@@ -1,3 +1,23 @@
+/*
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
+
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
diff --git a/bsp/bm3803/drivers/SConscript b/bsp/bm3803/drivers/SConscript
index a630c8a7c4..5e45e1bad3 100644
--- a/bsp/bm3803/drivers/SConscript
+++ b/bsp/bm3803/drivers/SConscript
@@ -3,20 +3,9 @@ Import('RTT_ROOT')
Import('rtconfig')
from building import *
-cwd = GetCurrentDir()
+cwd = GetCurrentDir()
src = Glob('*.c')
-
-# remove no need file.
-if GetDepend('RT_USING_LWIP') == False:
- src_need_remove = ['dm9000.c'] # need remove file list.
- SrcRemove(src, src_need_remove)
-
-if GetDepend('RT_USING_DFS') == False:
- src_need_remove = ['sd.c'] # need remove file list.
- SrcRemove(src, src_need_remove)
-
CPPPATH = [cwd]
-
group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
Return('group')
diff --git a/bsp/bm3803/drivers/uart.c b/bsp/bm3803/drivers/uart.c
index bdfe522958..4f07c26123 100644
--- a/bsp/bm3803/drivers/uart.c
+++ b/bsp/bm3803/drivers/uart.c
@@ -1,16 +1,22 @@
/*
- * File : serial.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2020, Shenzhen Academy of Aerospace Technology
- *
- * 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
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
#include <rthw.h>
#include <rtthread.h>
@@ -27,16 +33,16 @@ struct bm3803_uart
int irq;
};
-static void bm3803_uart_isr(int tt, void* param)
+static void bm3803_uart_isr(int tt, void *param)
{
- struct bm3803_uart* uart;
+ struct bm3803_uart *uart;
struct rt_serial_device *serial;
- struct uart_reg* uart_base;
+ struct uart_reg *uart_base;
- serial = (struct rt_serial_device*)param;
+ serial = (struct rt_serial_device *)param;
uart = (struct bm3803_uart *)serial->parent.user_data;
uart_base = uart->uart_base;
-
+
if (uart_base->uartstatus & 0x1)
{
rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
@@ -47,8 +53,8 @@ static void bm3803_uart_isr(int tt, void* param)
static rt_err_t bm3803_configure(struct rt_serial_device *serial, struct serial_configure *cfg)
{
- struct bm3803_uart* uart;
- struct uart_reg* uart_base;
+ struct bm3803_uart *uart;
+ struct uart_reg *uart_base;
RT_ASSERT(serial != RT_NULL);
uart = (struct bm3803_uart *)serial->parent.user_data;
@@ -57,17 +63,17 @@ static rt_err_t bm3803_configure(struct rt_serial_device *serial, struct serial_
if (cfg->baud_rate == BAUD_RATE_115200)
{
- uart_base->uartscaler = ((((CPU_FREQ * 10) / (8 * 115200)) - 5) / 10);
+ uart_base->uartscaler = ((((CPU_FREQ * 10) / (8 * 115200)) - 5) / 10);
}
else if (cfg->baud_rate == BAUD_RATE_9600)
{
- uart_base->uartscaler = ((((CPU_FREQ * 10) / (8 * 9600)) - 5) / 10);
+ uart_base->uartscaler = ((((CPU_FREQ * 10) / (8 * 9600)) - 5) / 10);
}
else
{
NOT_IMPLEMENTED();
}
-
+
uart_base->uartctrl |= 0x3;
return RT_EOK;
@@ -75,7 +81,7 @@ static rt_err_t bm3803_configure(struct rt_serial_device *serial, struct serial_
static rt_err_t bm3803_control(struct rt_serial_device *serial, int cmd, void *arg)
{
- struct bm3803_uart* uart;
+ struct bm3803_uart *uart;
RT_ASSERT(serial != RT_NULL);
uart = (struct bm3803_uart *)serial->parent.user_data;
@@ -97,13 +103,13 @@ static rt_err_t bm3803_control(struct rt_serial_device *serial, int cmd, void *a
static int bm3803_putc(struct rt_serial_device *serial, char c)
{
- struct bm3803_uart* uart;
- struct uart_reg* uart_base;
-
+ struct bm3803_uart *uart;
+ struct uart_reg *uart_base;
+
RT_ASSERT(serial != RT_NULL);
uart = (struct bm3803_uart *)serial->parent.user_data;
uart_base = uart->uart_base;
-
+
while (!(uart_base->uartstatus & 0x4));
uart_base->uartdata = c;
@@ -113,13 +119,13 @@ static int bm3803_putc(struct rt_serial_device *serial, char c)
static int bm3803_getc(struct rt_serial_device *serial)
{
int ch;
- struct bm3803_uart* uart;
- struct uart_reg* uart_base;
+ struct bm3803_uart *uart;
+ struct uart_reg *uart_base;
RT_ASSERT(serial != RT_NULL);
uart = (struct bm3803_uart *)serial->parent.user_data;
- uart_base = uart->uart_base;
-
+ uart_base = uart->uart_base;
+
ch = -1;
if (uart_base->uartstatus & 0x1)
{
@@ -131,7 +137,7 @@ static int bm3803_getc(struct rt_serial_device *serial)
static const struct rt_uart_ops bm3803_uart_ops =
{
- bm3803_configure,
+ bm3803_configure,
bm3803_control,
bm3803_putc,
bm3803_getc,
@@ -141,7 +147,7 @@ static const struct rt_uart_ops bm3803_uart_ops =
#ifdef RT_USING_UART1
struct bm3803_uart uart1 =
{
- (void*)UART1_BASE,
+ (void *)UART1_BASE,
UART1_TT,
};
struct rt_serial_device serial1;
@@ -152,7 +158,7 @@ int rt_hw_serial_init(void)
struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT;
#ifdef RT_USING_UART1
- volatile struct lregs *regs = (struct lregs*)PREGS;
+ volatile struct lregs *regs = (struct lregs *)PREGS;
serial1.ops = &bm3803_uart_ops;
serial1.config = config;
/* configure gpio direction */
@@ -166,8 +172,8 @@ int rt_hw_serial_init(void)
rt_hw_interrupt_mask(uart1.irq);
/* register UART1 device */
rt_hw_serial_register(&serial1, "uart1",
- RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
- &uart1);
+ RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX,
+ &uart1);
#endif
return 0;
}
diff --git a/bsp/bm3803/drivers/uart.h b/bsp/bm3803/drivers/uart.h
index 46a7df5d89..a16ea99913 100644
--- a/bsp/bm3803/drivers/uart.h
+++ b/bsp/bm3803/drivers/uart.h
@@ -1,16 +1,22 @@
/*
- * File : serial.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2020, Shenzhen Academy of Aerospace Technology
- *
- * 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
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
#ifndef __SERIAL_H__
#define __SERIAL_H__
diff --git a/bsp/bm3803/drivers/uart_reg.h b/bsp/bm3803/drivers/uart_reg.h
index c0911149df..3edd98a6f7 100644
--- a/bsp/bm3803/drivers/uart_reg.h
+++ b/bsp/bm3803/drivers/uart_reg.h
@@ -1,12 +1,32 @@
+/*
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
+
#ifndef SERIAL_REG_H
#define SERIAL_REG_H
struct uart_reg
{
- unsigned int uartdata;
- unsigned int uartstatus;
- unsigned int uartctrl;
- unsigned int uartscaler;
+ unsigned int uartdata;
+ unsigned int uartstatus;
+ unsigned int uartctrl;
+ unsigned int uartscaler;
};
#endif /* end of include guard: SERIAL_REG_H */
diff --git a/libcpu/sparc-v8/bm3803/bm3803.h b/libcpu/sparc-v8/bm3803/bm3803.h
index a90663f199..4a4c750975 100644
--- a/libcpu/sparc-v8/bm3803/bm3803.h
+++ b/libcpu/sparc-v8/bm3803/bm3803.h
@@ -1,95 +1,106 @@
/*
- * Copyright (c) 2020, Shenzhen Academy of Aerospace Technology
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
+
#ifndef __BM3803_H__
#define __BM3803_H__
struct lregs
{
- /* address = 0x80000000 */
- unsigned int memcfg1; /* 0x00 */
- unsigned int memcfg2;
- unsigned int memcfg3;
- unsigned int failaddr;
+ /* address = 0x80000000 */
+ unsigned int memcfg1; /* 0x00 */
+ unsigned int memcfg2;
+ unsigned int memcfg3;
+ unsigned int failaddr;
- unsigned int memstatus; /* 0x10 */
- unsigned int cachectrl;
- unsigned int powerdown;
- unsigned int writeprot1;
+ unsigned int memstatus; /* 0x10 */
+ unsigned int cachectrl;
+ unsigned int powerdown;
+ unsigned int writeprot1;
- unsigned int writeprot2; /* 0x20 */
- unsigned int pcr;
- unsigned int dummy2;
- unsigned int dummy3;
+ unsigned int writeprot2; /* 0x20 */
+ unsigned int pcr;
+ unsigned int dummy2;
+ unsigned int dummy3;
- unsigned int dummy4; /* 0x30 */
- unsigned int dummy5;
- unsigned int dummy6;
- unsigned int dummy7;
+ unsigned int dummy4; /* 0x30 */
+ unsigned int dummy5;
+ unsigned int dummy6;
+ unsigned int dummy7;
- unsigned int timercnt1; /* 0x40 */
- unsigned int timerload1;
- unsigned int timerctrl1;
- unsigned int wdog;
+ unsigned int timercnt1; /* 0x40 */
+ unsigned int timerload1;
+ unsigned int timerctrl1;
+ unsigned int wdog;
- unsigned int timercnt2; /* 0x50 */
- unsigned int timerload2;
- unsigned int timerctrl2;
- unsigned int dummy8;
+ unsigned int timercnt2; /* 0x50 */
+ unsigned int timerload2;
+ unsigned int timerctrl2;
+ unsigned int dummy8;
- unsigned int scalercnt; /* 0x60 */
- unsigned int scalerload;
- unsigned int dummy9;
- unsigned int dummy10;
+ unsigned int scalercnt; /* 0x60 */
+ unsigned int scalerload;
+ unsigned int dummy9;
+ unsigned int dummy10;
- unsigned int uartdata1; /* 0x70 */
- unsigned int uartstatus1;
- unsigned int uartctrl1;
- unsigned int uartscaler1;
+ unsigned int uartdata1; /* 0x70 */
+ unsigned int uartstatus1;
+ unsigned int uartctrl1;
+ unsigned int uartscaler1;
- unsigned int uartdata2; /* 0x80 */
- unsigned int uartstatus2;
- unsigned int uartctrl2;
- unsigned int uartscaler2;
+ unsigned int uartdata2; /* 0x80 */
+ unsigned int uartstatus2;
+ unsigned int uartctrl2;
+ unsigned int uartscaler2;
- unsigned int irqmask; /* 0x90 */
- unsigned int irqpend;
- unsigned int irqforce;
- unsigned int irqclear;
+ unsigned int irqmask; /* 0x90 */
+ unsigned int irqpend;
+ unsigned int irqforce;
+ unsigned int irqclear;
- unsigned int piodata; /* 0xA0 */
- unsigned int piodir;
- unsigned int pioirq;
- unsigned int dummy11;
+ unsigned int piodata; /* 0xA0 */
+ unsigned int piodir;
+ unsigned int pioirq;
+ unsigned int dummy11;
- unsigned int imask2; /* 0xB0 */
- unsigned int ipend2;
- unsigned int istat2;
- unsigned int dummy12;
+ unsigned int imask2; /* 0xB0 */
+ unsigned int ipend2;
+ unsigned int istat2;
+ unsigned int dummy12;
- unsigned int dummy13; /* 0xC0 */
- unsigned int dcomstatus;
- unsigned int dcomctrl;
- unsigned int dcomscaler;
+ unsigned int dummy13; /* 0xC0 */
+ unsigned int dcomstatus;
+ unsigned int dcomctrl;
+ unsigned int dcomscaler;
- unsigned int dummy14; /* 0xD0 */
- unsigned int dummy15;
- unsigned int dummy16;
- unsigned int dummy17;
+ unsigned int dummy14; /* 0xD0 */
+ unsigned int dummy15;
+ unsigned int dummy16;
+ unsigned int dummy17;
- unsigned int uartdata3; /* 0xE0 */
- unsigned int uartstatus3;
- unsigned int uartctrl3;
- unsigned int uartscaler3;
+ unsigned int uartdata3; /* 0xE0 */
+ unsigned int uartstatus3;
+ unsigned int uartctrl3;
+ unsigned int uartscaler3;
};
-#define PREGS 0x80000000
+#define PREGS 0x80000000
#define UART1_BASE (PREGS + 0x70)
diff --git a/libcpu/sparc-v8/bm3803/context_gcc.S b/libcpu/sparc-v8/bm3803/context_gcc.S
index c0344a81d5..478793588e 100644
--- a/libcpu/sparc-v8/bm3803/context_gcc.S
+++ b/libcpu/sparc-v8/bm3803/context_gcc.S
@@ -1,12 +1,22 @@
/*
- * Copyright (c) 2020, Shenzhen Academy of Aerospace Technology
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
#define SPARC_PSR_PIL_MASK 0x00000F00
#define SPARC_PSR_ET_MASK 0x00000020
diff --git a/libcpu/sparc-v8/bm3803/interrupt.c b/libcpu/sparc-v8/bm3803/interrupt.c
index e3f9b5b3de..8ce03dd4c0 100644
--- a/libcpu/sparc-v8/bm3803/interrupt.c
+++ b/libcpu/sparc-v8/bm3803/interrupt.c
@@ -1,12 +1,22 @@
/*
- * Copyright (c) 2020, Shenzhen Academy of Aerospace Technology
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
#include <rthw.h>
#include <rtthread.h>
@@ -43,10 +53,10 @@ void rt_hw_interrupt_init(void)
*/
void rt_hw_interrupt_mask(int vector)
{
- if (vector > 0x1F || vector < 0x11)
- return;
- volatile struct lregs *regs = (struct lregs*)PREGS;
- regs->irqmask &= ~(1 << (vector - 0x10));
+ if (vector > 0x1F || vector < 0x11)
+ return;
+ volatile struct lregs *regs = (struct lregs *)PREGS;
+ regs->irqmask &= ~(1 << (vector - 0x10));
}
/**
@@ -55,10 +65,10 @@ void rt_hw_interrupt_mask(int vector)
*/
void rt_hw_interrupt_umask(int vector)
{
- if (vector > 0x1F || vector < 0x11)
- return;
- volatile struct lregs *regs = (struct lregs*)PREGS;
- regs->irqmask |= 1 << (vector - 0x10);
+ if (vector > 0x1F || vector < 0x11)
+ return;
+ volatile struct lregs *regs = (struct lregs *)PREGS;
+ regs->irqmask |= 1 << (vector - 0x10);
}
/**
@@ -72,7 +82,7 @@ rt_isr_handler_t rt_hw_interrupt_install(int vector, rt_isr_handler_t handler,
{
rt_isr_handler_t old_handler = RT_NULL;
- if(vector < MAX_HANDLERS || vector >= 0)
+ if (vector < MAX_HANDLERS || vector >= 0)
{
old_handler = isr_table[vector].handler;
diff --git a/libcpu/sparc-v8/bm3803/interrupt.h b/libcpu/sparc-v8/bm3803/interrupt.h
index 7632195e70..5c97d5caa5 100644
--- a/libcpu/sparc-v8/bm3803/interrupt.h
+++ b/libcpu/sparc-v8/bm3803/interrupt.h
@@ -1,12 +1,22 @@
/*
- * Copyright (c) 2020, Shenzhen Academy of Aerospace Technology
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
#ifndef __INTERRUPT_H__
#define __INTERRUPT_H__
diff --git a/libcpu/sparc-v8/bm3803/stack.c b/libcpu/sparc-v8/bm3803/stack.c
index 3563692cdd..70c1b60d8c 100644
--- a/libcpu/sparc-v8/bm3803/stack.c
+++ b/libcpu/sparc-v8/bm3803/stack.c
@@ -1,12 +1,23 @@
/*
- * Copyright (c) 2020, Shenzhen Academy of Aerospace Technology
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
+
#include <rtthread.h>
/**
@@ -29,34 +40,34 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter,
stack_addr += sizeof(rt_uint32_t);
stack_addr = (rt_uint8_t *)RT_ALIGN_DOWN((rt_uint32_t)stack_addr, 8);
stk = (rt_uint32_t *)stack_addr;
-
- stk -= 24;
- stk -= 8;
-
- for (register_index = 0; register_index != 8; register_index++)
- stk[register_index] = 0xdeadbeef;
-
- for (window_index = 0; window_index != 8; window_index++)
- {
- stk -= 16;
- for (register_index = 0; register_index != 16; register_index++)
- stk[register_index] = 0xdeadbeef;
- if (window_index == 0)
- {
- stk[8] = (rt_uint32_t)parameter;
- stk[15] = (rt_uint32_t)texit - 8;
- }
- }
-
- stk -= 34;
- for (register_index = 0; register_index != 34; register_index++)
- stk[register_index] = 0;
-
- stk -= 4;
- stk[0] = (rt_uint32_t)tentry; //pc
- stk[1] = (rt_uint32_t)tentry + 4; //npc
- stk[2] = 0x10C7; //psr
- stk[3] = 0x2; //wim
+
+ stk -= 24;
+ stk -= 8;
+
+ for (register_index = 0; register_index != 8; register_index++)
+ stk[register_index] = 0xdeadbeef;
+
+ for (window_index = 0; window_index != 8; window_index++)
+ {
+ stk -= 16;
+ for (register_index = 0; register_index != 16; register_index++)
+ stk[register_index] = 0xdeadbeef;
+ if (window_index == 0)
+ {
+ stk[8] = (rt_uint32_t)parameter;
+ stk[15] = (rt_uint32_t)texit - 8;
+ }
+ }
+
+ stk -= 34;
+ for (register_index = 0; register_index != 34; register_index++)
+ stk[register_index] = 0;
+
+ stk -= 4;
+ stk[0] = (rt_uint32_t)tentry; //pc
+ stk[1] = (rt_uint32_t)tentry + 4; //npc
+ stk[2] = 0x10C7; //psr
+ stk[3] = 0x2; //wim
/* return task's current stack address */
return (rt_uint8_t *)stk;
diff --git a/libcpu/sparc-v8/bm3803/start_gcc.S b/libcpu/sparc-v8/bm3803/start_gcc.S
index 0f87aa17db..fd613375c9 100644
--- a/libcpu/sparc-v8/bm3803/start_gcc.S
+++ b/libcpu/sparc-v8/bm3803/start_gcc.S
@@ -1,12 +1,22 @@
/*
- * Copyright (c) 2020, Shenzhen Academy of Aerospace Technology
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
#define PSR_INIT 0x10C0
#define PREGS 0x80000000
diff --git a/libcpu/sparc-v8/bm3803/trap.c b/libcpu/sparc-v8/bm3803/trap.c
index 05a0416dfa..545073ed18 100644
--- a/libcpu/sparc-v8/bm3803/trap.c
+++ b/libcpu/sparc-v8/bm3803/trap.c
@@ -1,12 +1,22 @@
/*
- * Copyright (c) 2020, Shenzhen Academy of Aerospace Technology
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
#include <rtthread.h>
#include <rthw.h>
@@ -15,14 +25,14 @@ extern struct rt_irq_desc isr_table[];
void rt_hw_trap(int tt, unsigned int *sp)
{
- void *param;
- rt_isr_handler_t isr_func;
-
- /* get interrupt service routine */
- isr_func = isr_table[tt].handler;
- param = isr_table[tt].param;
-
- /* turn to interrupt service routine */
+ void *param;
+ rt_isr_handler_t isr_func;
+
+ /* get interrupt service routine */
+ isr_func = isr_table[tt].handler;
+ param = isr_table[tt].param;
+
+ /* turn to interrupt service routine */
if (isr_func != RT_NULL)
isr_func(tt, param);
}
diff --git a/libcpu/sparc-v8/bm3803/vector_gcc.S b/libcpu/sparc-v8/bm3803/vector_gcc.S
index 0d243bee33..114fe45536 100644
--- a/libcpu/sparc-v8/bm3803/vector_gcc.S
+++ b/libcpu/sparc-v8/bm3803/vector_gcc.S
@@ -1,12 +1,22 @@
/*
- * Copyright (c) 2020, Shenzhen Academy of Aerospace Technology
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-10-16 Dystopia the first version
- */
+Copyright 2020 Shenzhen Academy of Aerospace Technology
+
+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.
+
+Change Logs:
+Date Author Notes
+2020-10-16 Dystopia the first version
+*/
#define TRAPL(H) mov %g0, %l0; sethi %hi(H), %l4; jmp %l4 + %lo(H); nop;
#define TRAP(H) mov %psr, %l0; sethi %hi(H), %l4; jmp %l4 + %lo(H); nop;