• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2009-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  * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
11  * See the Mulan PSL v2 for more details.
12  * Create: 2009-12-22
13  * Description: UniProton raspi4 demo
14  */
15 #include <stdio.h>
16 #include <stdlib.h>
17 #include <string.h>
18 #include <stdarg.h>
19 #include "securec.h"
20 #include "prt_config.h"
21 #include "prt_config_internal.h"
22 #include "prt_task.h"
23 #include "test.h"
24 
25 TskHandle g_testTskHandle;
26 U8 g_memRegion00[OS_MEM_FSC_PT_SIZE];
27 
28 #if defined(OS_OPTION_OPENAMP)
TestOpenamp()29 int TestOpenamp()
30 {
31     int ret;
32 
33     ret = rpmsg_service_init();
34     if (ret) {
35         return ret;
36     }
37 
38     return OS_OK;
39 }
40 #endif
41 
TestTaskEntry()42 void TestTaskEntry()
43 {
44 #if defined(OS_OPTION_OPENAMP)
45     TestOpenamp();
46 #endif
47 }
48 
OsTestInit(void)49 U32 OsTestInit(void)
50 {
51     U32 ret;
52     U8 ptNo = OS_MEM_DEFAULT_FSC_PT;
53     struct TskInitParam param = {0};
54 
55     param.stackAddr = (U32)PRT_MemAllocAlign(0, ptNo, 0x2000, MEM_ADDR_ALIGN_016);
56     param.taskEntry = (TskEntryFunc)TestTaskEntry;
57     param.taskPrio = 25;
58     param.name = "TestTask";
59     param.stackSize = 0x2000;
60 
61     ret = PRT_TaskCreate(&g_testTskHandle, &param);
62     if (ret) {
63         return ret;
64     }
65 
66     ret = PRT_TaskResume(g_testTskHandle);
67     if (ret) {
68         return ret;
69     }
70 
71     return OS_OK;
72 }
73 
PRT_AppInit(void)74 U32 PRT_AppInit(void)
75 {
76     U32 ret;
77 
78     ret = OsTestInit();
79     if (ret) {
80         return ret;
81     }
82 
83     ret = TestClkStart();
84     if (ret) {
85         return ret;
86     }
87 
88     return OS_OK;
89 }
90 
PRT_HardDrvInit(void)91 U32 PRT_HardDrvInit(void)
92 {
93     U32 ret;
94 
95     ret = OsHwiInit();
96     if (ret) {
97         return ret;
98     }
99 
100     return OS_OK;
101 }
102 
PRT_HardBootInit(void)103 void PRT_HardBootInit(void)
104 {
105 }
106 
main(void)107 S32 main(void)
108 {
109     return OsConfigStart();
110 }
111 
__wrap_memset(void * dest,int set,U32 len)112 extern void *__wrap_memset(void *dest, int set, U32 len)
113 {
114     if (dest == NULL || len == 0) {
115         return NULL;
116     }
117 
118     char *ret = (char *)dest;
119     for (int i = 0; i < len; ++i) {
120         ret[i] = set;
121     }
122     return ret;
123 }
124 
__wrap_memcpy(void * dest,const void * src,size_t size)125 extern void *__wrap_memcpy(void *dest, const void *src, size_t size)
126 {
127     for (size_t i = 0; i < size; ++i) {
128         *(char *)(dest + i) = *(char *)(src + i);
129     }
130 }
131 
132