• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-2022 Huawei Technologies Co., Ltd. All rights reserved.
3  *
4  * UniProton is licensed under Mulan PSL v2.
5  * You can use this software according to the terms and conditions of the Mulan PSL v2.
6  * You may obtain a copy of Mulan PSL v2 at:
7  * 	http://license.coscl.org.cn/MulanPSL2
8  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
9  * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
10  * See the Mulan PSL v2 for more details.
11  * Create: 2022-12-05
12  * Description: openamp configuration
13  */
14 #include <stdio.h>
15 #include <stdlib.h>
16 #include <string.h>
17 #include <stdarg.h>
18 #include "securec.h"
19 #include "prt_config.h"
20 #include "prt_config_internal.h"
21 #include "prt_task.h"
22 #include "test.h"
23 
24 TskHandle g_testTskHandle;
25 U8 g_memRegion00[OS_MEM_FSC_PT_SIZE];
26 
27 extern U32 PRT_PrintfInit();
28 
29 #if defined(OS_OPTION_OPENAMP)
TestOpenamp()30 int TestOpenamp()
31 {
32     int ret;
33 
34     ret = rpmsg_service_init();
35     if (ret) {
36         return ret;
37     }
38 
39     return OS_OK;
40 }
41 #endif
42 
TestTaskEntry()43 void TestTaskEntry()
44 {
45 #if defined(OS_OPTION_OPENAMP)
46     TestOpenamp();
47 #endif
48 }
49 
OsTestInit(void)50 U32 OsTestInit(void)
51 {
52     U32 ret;
53     U8 ptNo = OS_MEM_DEFAULT_FSC_PT;
54     struct TskInitParam param = {0};
55 
56     param.stackAddr = (U32)PRT_MemAllocAlign(0, ptNo, 0x2000, MEM_ADDR_ALIGN_016);
57     param.taskEntry = (TskEntryFunc)TestTaskEntry;
58     param.taskPrio = 25;
59     param.name = "TestTask";
60     param.stackSize = 0x2000;
61 
62     ret = PRT_TaskCreate(&g_testTskHandle, &param);
63     if (ret) {
64         return ret;
65     }
66 
67     ret = PRT_TaskResume(g_testTskHandle);
68     if (ret) {
69         return ret;
70     }
71 
72     return OS_OK;
73 }
74 
PRT_AppInit(void)75 U32 PRT_AppInit(void)
76 {
77     U32 ret;
78 
79     ret = OsTestInit();
80     if (ret) {
81         return ret;
82     }
83 
84     ret = TestClkStart();
85     if (ret) {
86         return ret;
87     }
88 
89     return OS_OK;
90 }
91 
PRT_HardDrvInit(void)92 U32 PRT_HardDrvInit(void)
93 {
94     U32 ret;
95 
96     ret = OsHwiInit();
97     if (ret) {
98         return ret;
99     }
100 
101     ret = PRT_PrintfInit();
102     if (ret) {
103         return ret;
104     }
105 
106     return OS_OK;
107 }
108 
PRT_HardBootInit(void)109 void PRT_HardBootInit(void)
110 {
111 }
112 
main(void)113 S32 main(void)
114 {
115     return OsConfigStart();
116 }
117 
__wrap_memset(void * dest,int set,U32 len)118 extern void *__wrap_memset(void *dest, int set, U32 len)
119 {
120     if (dest == NULL || len == 0) {
121         return NULL;
122     }
123 
124     char *ret = (char *)dest;
125     for (int i = 0; i < len; ++i) {
126         ret[i] = set;
127     }
128     return ret;
129 }
130 
__wrap_memcpy(void * dest,const void * src,size_t size)131 extern void *__wrap_memcpy(void *dest, const void *src, size_t size)
132 {
133     for (size_t i = 0; i < size; ++i) {
134         *(char *)(dest + i) = *(char *)(src + i);
135     }
136 }
137 
138