TC38xHsmHostDemo v1.1.0
This is a demo project for TC38x HSM Host Library.
载入中...
搜索中...
未找到
common.h
1/*******************************************************************************
2** **
3** Copyright (C) JFR Technologies (2022) **
4** **
5** All rights reserved. **
6** **
7** This document contains proprietary information belonging to JFR **
8** Technologies. Passing on and copying of this document, and communication **
9** of its contents is not permitted without prior written authorization. **
10** **
11********************************************************************************
12** **
13** FILENAME : common.h **
14** **
15** Description : **
16** **
17** Author : liushun **
18** **
19** Created on : 2022/09/12 15:34:00 **
20** **
21*******************************************************************************/
22
23#ifndef COMMON_H
24#define COMMON_H
25/*******************************************************************************
26** Includes **
27*******************************************************************************/
28#include "Ifx_reg.h"
29#include "Std_Types.h"
30#include "config_interface.h"
31#include <stdio.h>
32#include <stdlib.h>
33/*
34 * Most datatypes are already defined in the CPU abstraction module. At this point, we need to
35 * define some substitutions for the operating system sourcecode.
36 */
37typedef unsigned char BOOLEAN;
38typedef unsigned char INT8U;
39typedef signed char INT8S;
40typedef unsigned short INT16U;
41typedef signed short INT16S;
42typedef unsigned long INT32U;
43typedef signed long INT32S;
44
45typedef INT32U OS_STK;
46typedef INT32U OS_CPU_SR;
47
48#ifdef OS_COMMON_GLOBALS
49#define OS_COMMON_EXT
50#else
51#define OS_COMMON_EXT extern
52#endif
53
54#define PATTERN_VERSION 0x02000000
55
56/* 1ms Counter*/
57#define OS_TICKS_PER_SEC 1000 /* Set the number of ticks in one second */
58#define STM_CLK (CONFIG_MISC._SPB_frequency_set)
59#define STM0_RELOAD (STM_CLK / OS_TICKS_PER_SEC)
60
61#define MEM_TRACE_MAX 0x800
62#define MEM_TRACE_ADDR 0x7001A000
63#define MEM_TRACE_ID_INIT 0x1
64#define MEM_TRACE_ID_TASKSW 0x2
65#define MEM_TRACE_ISR_BEGIN 0
66#define MEM_TRACE_TASKSW 0
67#define MEM_TRACE_INIT 1
68#define MEM_TRACE_WCPATTERN 0
69
70OS_COMMON_EXT INT32U *pOS_MEM_TRACE;
71OS_COMMON_EXT INT32U OS_MEM_TRACE_cnt;
72
73/* Interrupt definition */
74#define DMA_ERRINT 0x2
75#define SBCU_ERRINT 0x6
76#define SRI_ERRINT 0x7
77#define SCU_FLASHERRINT 0x8
78#define DMA_CH07INT 0x13
79#define ASC0_ERRINT 0x14
80#define DMA_CH11INT 0x15
81#define ASC1_ERRINT 0x16
82#define DMA_CH01INT 0x17
83#define SPI0_ERRINT 0x18
84#define DMA_CH03INT 0x19
85#define SPI1_ERRINT 0x1A
86#define DMA_CH05INT 0x1B
87#define SPI2_ERRINT 0x1C
88#define DMA_CH00INT 0x1D
89#define DMA_CH02INT 0x1E
90#define DMA_CH04INT 0x1F
91#define DMA_CH06INT 0x20
92#define DMA_CH10INT 0x21
93#define DMA_CH12INT 0x22
94#define DMA_CH13INT 0x23
95#define DMA_CH14INT 0x24
96#define DMA_CH15INT 0x25
97#define DMA_CH16INT 0x26
98#define CAN_SRN0INT 0x28
99#define CAN_SRN1INT 0x29
100#define CAN_SRN2INT 0x2A
101#define CAN_SRN3INT 0x2B
102#define CAN_SRN4INT 0x2C
103#define CAN_SRN5INT 0x2D
104#define CAN_SRN6INT 0x2E
105#define CAN_SRN7INT 0x2F
106#define CPU_APPLPROC0WAKEINT 0x30
107#define CPU_APPLPROC0MSGINT 0x31
108#define CPU_APPLPROC1WAKEINT 0x32
109#define CPU_APPLPROC1MSGINT 0x33
110#define ETH_INT 0x34
111#define PSI5_CH0INT 0x35
112#define PSI5_CH1INT 0x36
113#define PSI5_CH2INT 0x37
114#define PSI5_ERRINT 0x38
115#define HSSL_RXINT 0x39
116#define HSSL_ERRINT 0x3A
117#define HWIO_GROUP_LEVEL 0x3E
118#define OS_TICK_IRQ_PRIO 0x3F
119#define GTM_MCS00INT 0x40
120#define GTM_MCS01INT 0x41
121#define GTM_MCS02INT 0x42
122#define GTM_MCS03INT 0x43
123#define GTM_MCS04INT 0x44
124#define GTM_MCS05INT 0x45
125#define GTM_MCS06INT 0x46
126#define GTM_MCS07INT 0x47
127#define SENT_CH2INT 0x48
128#define SENT_CH3INT 0x49
129#define SENT_CH4INT 0x4A
130#define SENT_CH5INT 0x4B
131#define SENT_CH6INT 0x4C
132#define SENT_CH7INT 0x4D
133#define SENT_CH8INT 0x4E
134#define SENT_CH9INT 0x4F
135#define SENT_ERRINT 0x50
136#define IFLEX_TXINT 0x51
137#define IFLEX_ERRINT 0x52
138#define MEMCHK_DMAUPDATEINT 0x53
139#define SMU0INT 0x54
140#define SMU1INT 0x55
141#define SMU2INT 0x56
142#define VADC0INT 0x57
143#define VADC1INT 0x58
144#define VADC2INT 0x59
145#define VADC3INT 0x5A
146#define VADC4INT 0x5B
147#define VADC5INT 0x5C
148#define VADC6INT 0x5D
149#define VADC7INT 0x5E
150#define DSADC0INT 0x5F
151#define DSADC1INT 0x60
152#define DSADC2INT 0x61
153#define DSADC3INT 0x62
154#define DSADC4INT 0x63
155#define DSADC5INT 0x64
156#define DMA_ME1CH00INT 0x65
157#define DMA_ME1CH01INT 0x66
158
159// List of common Functions
160void OS_Memory_Trace_Init(void);
161void OS_Store_Trace(uint32 id,
162 uint32 p0,
163 uint32 p1,
164 uint32 p2,
165 uint32 p3,
166 uint32 p4,
167 uint32 p5);
168
169#ifdef WINDRIVER
170#pragma section CODE X
171#endif
172
173void FAIL(TFAIL_STATUS x,
174 uint32 y);
175void FAIL_TRAP(TFAIL_STATUS x,
176 uint32 y,
177 uint32 din);
178
179#ifdef __HIGHTEC__
180#pragma section ".bss.noclear" aw
181#elif __TASKING__
182#pragma noclear
183#elif WINDRIVER
184#pragma section SDATA ".data_noclear" \
185 ".bss_noclear" far - \
186 absolute
187#else
188#error "Please specify Compiler."
189#endif
190
191OS_COMMON_EXT TFAIL_BUF FAIL_BUF;
192OS_COMMON_EXT volatile uint32 _hooksignal;
193OS_COMMON_EXT uint32 interruptHandlerVectorTable[256];
194
195#ifdef __HIGHTEC__
196#pragma section
197#pragma section ".sbss.CONFIG" aws 4
198#elif __TASKING__
199#pragma clear
200#pragma section a0bss "CONFIG"
201#pragma align 4
202#elif WINDRIVER
203#pragma section SDATA ".data_config" \
204 ".sbss_config" far - \
205 absolute
206#pragma pack(4, 4, 0)
207#else
208#error "Please specify Compiler."
209#endif
210
211OS_COMMON_EXT TCONFIG_APPLPROC CONFIG_APPLPROC0;
212OS_COMMON_EXT TCONFIG_APPLPROC CONFIG_APPLPROC1;
213OS_COMMON_EXT TCONFIG_STATUS CONFIG_STATUS;
214OS_COMMON_EXT TCONFIG_PORTIOCR CONFIG_PORTIOCR;
215OS_COMMON_EXT TCONFIG_PORTPDR CONFIG_PORTPDR;
216OS_COMMON_EXT TCONFIG_SYSCLK CONFIG_SYSCLK;
217OS_COMMON_EXT TCONFIG_MISC CONFIG_MISC;
218OS_COMMON_EXT TCONFIG_WDT CONFIG_WDT;
219OS_COMMON_EXT TCONFIG_SPI CONFIG_SPI0;
220OS_COMMON_EXT TCONFIG_SPI CONFIG_SPI1;
221OS_COMMON_EXT TCONFIG_ASC CONFIG_ASC0;
222OS_COMMON_EXT TCONFIG_ASC CONFIG_ASC1;
223OS_COMMON_EXT TCONFIG_STM CONFIG_STM;
224OS_COMMON_EXT TCONFIG_SMU CONFIG_SMU;
225OS_COMMON_EXT TCONFIG_ALL CONFIG_ALL;
226
227#ifdef __HIGHTEC__
228#pragma section
229#elif __TASKING__
230#pragma section a0bss
231#pragma align restore
232#elif WINDRIVER
233#pragma section SDATA RW
234#else
235#error "Please specify Compiler."
236#endif
237
238#ifndef SETREG
239#define SETREG(x, y) \
240 { \
241 uint32 *pmem; \
242 pmem = (uint32 *)(x); \
243 *pmem = y; \
244 }
245#endif
246
247// this macro is used to address SFRs memlocations directly in C programs
248#ifndef MEM
249#define MEM(address) (*((volatile unsigned int *)(address))) // makes live easier
250#endif
251#ifndef MEM16
252#define MEM16(address) (*((volatile unsigned short *)(address)))
253#endif
254#ifndef MEM8
255#define MEM8(address) (*((volatile unsigned char *)(address)))
256#endif
257
258#endif