Skip to content

Commit 3abeb3e

Browse files
committed
embARC: add support
Signed-off-by: Yuguo Zou <[email protected]>
1 parent 7af6c6e commit 3abeb3e

File tree

3 files changed

+1080
-0
lines changed

3 files changed

+1080
-0
lines changed

Ports/ARC/embARC/MetaWare/os_cpu.h

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
/*
2+
*********************************************************************************************************
3+
* uC/OS-III
4+
* The Real-Time Kernel
5+
*
6+
* (c) Copyright 2009-2018; Silicon Laboratories Inc.,
7+
* 400 W. Cesar Chavez, Austin, TX 78701
8+
*
9+
* All rights reserved. Protected by international copyright laws.
10+
*
11+
* Your use of this software is subject to your acceptance of the terms
12+
* of a Silicon Labs Micrium software license, which can be obtained by
13+
* contacting [email protected]. If you do not agree to the terms of this
14+
* license, you may not use this software.
15+
*
16+
* Please help us continue to provide the Embedded community with the finest
17+
* software available. Your honesty is greatly appreciated.
18+
*
19+
* You can find our product's documentation at: doc.micrium.com
20+
*
21+
* For more information visit us at: www.micrium.com
22+
*********************************************************************************************************
23+
*/
24+
25+
/*
26+
*********************************************************************************************************
27+
*
28+
* ARC
29+
* MetaWare
30+
*
31+
* Filename : os_cpu.h
32+
* Version : V3.07.03
33+
*********************************************************************************************************
34+
*/
35+
36+
#ifndef _OS_CPU_H
37+
#define _OS_CPU_H
38+
39+
#ifdef OS_CPU_GLOBALS
40+
#define OS_CPU_EXT
41+
#else
42+
#define OS_CPU_EXT extern
43+
#endif
44+
45+
#include "embARC.h"
46+
#ifdef __cplusplus
47+
extern "C" {
48+
#endif
49+
50+
/*
51+
*********************************************************************************************************
52+
* MACROS
53+
*
54+
* Note(s): OS_TASK_SW() invokes the task level context switch.
55+
*
56+
* (1) On some processors, this corresponds to a call to OSCtxSw() which is an assemply language
57+
* function that performs the context switch.
58+
*
59+
* (2) On some processors, you need to simulate an interrupt using a 'sowfate interrupt' or a
60+
* TRAP instruction. Some compilers allow you to add in-line assembly language as shown.
61+
*********************************************************************************************************
62+
*/
63+
64+
#define OS_TASK_SW() OSCtxSw() /* Simulate interrupt */
65+
66+
/*
67+
*********************************************************************************************************
68+
* TIMESTAMP CONFIGURATION
69+
*
70+
* Note(s) : (1) OS_TS_GET() is generally defined as CPU_TS_Get32() to allow CPU timestamp timer to be of
71+
* any data type size.
72+
*
73+
* (2) For architectures that provide 32-bit or higher precision free running counters
74+
* (i.e. cycle count registers):
75+
*
76+
* (a) OS_TS_GET() may be defined as CPU_TS_TmrRd() to improve performance when retrieving
77+
* the timestamp. You would use CPU_TS_TmrRd() if this function returned the value of
78+
* a 32-bit free running timer 0x00000000 to 0xFFFFFFFF then roll over to 0x00000000.
79+
*
80+
* (b) CPU_TS_TmrRd() MUST be configured to be greater or equal to 32-bits to avoid
81+
* truncation of TS.
82+
*
83+
* (c) The Timer must be an up counter.
84+
*********************************************************************************************************
85+
*/
86+
87+
#if OS_CFG_TS_EN == 1u
88+
#define OS_TS_GET() (CPU_TS)CPU_TS_Get32() /* See Note #2a. CPU_TS_TmrRd() */
89+
#else
90+
#define OS_TS_GET() (CPU_TS)0u
91+
#endif
92+
93+
94+
/*
95+
*********************************************************************************************************
96+
* FUNCTION PROTOTYPES
97+
*********************************************************************************************************
98+
*/
99+
100+
void OSCtxSw (void);
101+
void OSIntCtxSw (void);
102+
void OSStartHighRdy (void);
103+
int OS_SysTickInit (void);
104+
105+
#ifdef __cplusplus
106+
}
107+
#endif
108+
109+
#endif

0 commit comments

Comments
 (0)