NSUKit 1.4.0
板卡级统一交互接口
载入中...
搜索中...
未找到
sim_interface.cpp
浏览该文件的文档.
1//
2// Created by 56585 on 2023/8/17.
3//
4
6
7using namespace nsukit;
8
10
12 mixin_ = new Mixin_NativeRegCmd(this);
13}
14
16 delete mixin_;
17}
18
19
21 sim_target = param->sim_target;
22 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
23}
24
25
31 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
32}
33
34
41 simTimeout = s;
42 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
43}
44
45
47 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
48}
49
50
52 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
53}
54
55
57 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
58}
59
60
68 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
69}
70
71
79 if (buf == nullptr) {
80 return nsukitStatus_t::NSUKIT_STATUS_INVALID_VALUE;
81 }
82 memset(buf, 1, sizeof(nsuRegValue_t ));
83 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
84}
85
86
88 sim_target = param->sim_target;
90 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
91}
92
93
95 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
96}
97
100}
101
103 bool self_malloc = false;
104 if (buf == nullptr) {
105 buf = malloc(length);
106 self_malloc = true;
107 }
108 auto memory = new DMAMemory{length, self_malloc, buf};
109 fdMap[memory] = memory;
110 return memory;
111}
112
114 if (fd == nullptr) {
115 return nsukitStatus_t::NSUKIT_STATUS_INVALID_VALUE;
116 }
117 auto memory = fdMap[fd];
118 fdMap.erase(fd);
119 if (memory->self_malloc) {
120 free(memory->buffer);
121 }
122 delete memory;
123 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
124}
125
127 return fdMap[fd]->buffer;
128}
129
132 return I_BaseStreamUItf::open_send(chnl, fd, length, offset);
133}
134
137 return I_BaseStreamUItf::open_recv(chnl, fd, length, offset);
138}
139
141 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
142}
143
145 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
146}
147
150 bool (*stop_event)(), float timeout, int flag) {
151 sim_stream_func(((nsuCharBuf_p )fdMap[fd]->buffer)+offset, length);
152// memset(fdMap[fd]->buffer, 1, length);
153 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
154}
155
158 bool (*stop_event)(), float timeout, int flag) {
159 return nsukitStatus_t::NSUKIT_STATUS_SUCCESS;
160}
U_BaseCmdMixin * mixin_
Definition: base_itf.h:83
virtual nsukitStatus_t open_recv(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0)
Definition: base_itf.h:238
virtual nsukitStatus_t open_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0)
Definition: base_itf.h:233
nsukitStatus_t set_timeout(float s) override
nsukitStatus_t accept(nsuInitParam_t *param) override
nsukitStatus_t recv_bytes(nsuSize_t size, nsuCharBuf_p buf) override
nsukitStatus_t send_bytes(nsuBytes_t &bytes) override
~SimCmdUItf() override
nsukitStatus_t read(nsuRegAddr_t addr, nsuRegValue_t *buf) override
nsukitStatus_t close() override
nsukitStatus_t write(nsuRegAddr_t addr, nsuRegValue_t value) override
nsuVoidBuf_p get_buffer(nsuMemory_p fd, nsuStreamLen_t length) override
nsuMemory_p alloc_buffer(nsuStreamLen_t length, nsuVoidBuf_p buf=nullptr) override
nsukitStatus_t wait_stream(nsuMemory_p fd, float timeout=1.) override
nsukitStatus_t break_stream(nsuMemory_p fd) override
nsukitStatus_t free_buffer(nsuMemory_p fd) override
nsukitStatus_t open_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0) override
nsukitStatus_t accept(nsuInitParam_t *param) override
nsukitStatus_t close() override
std::map< nsuMemory_p, DMAMemory * > fdMap
Definition: sim_interface.h:50
nsukitStatus_t set_timeout(float s) override
void(* sim_stream_func)(nsuCharBuf_p buf, nsuSize_t length)
Definition: sim_interface.h:48
nsukitStatus_t open_recv(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0) override
nsukitStatus_t stream_recv(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0, bool(*stop_event)()=nullptr, float timeout=5., int flag=1) override
nsukitStatus_t stream_send(nsuChnlNum_t chnl, nsuMemory_p fd, nsuStreamLen_t length, nsuStreamLen_t offset=0, bool(*stop_event)()=nullptr, float timeout=5., int flag=1) override
virtual nsukitStatus_t set_timeout(float s)
Definition: base_itf.h:37
void(* sim_stream_func)(nsuCharBuf_p buf, nsuSize_t length)
向输入的内存中写入模拟数据的函数
Definition: type.h:135
int sim_target
模拟目标
Definition: type.h:134
DLLEXTERN typedef nsuSize_t nsuStreamLen_t
Definition: type.h:88
nsukitStatus_t
Definition: type.h:53
DLLEXTERN typedef size_t nsuSize_t
Definition: type.h:87
DLLEXTERN typedef void * nsuVoidBuf_p
Definition: type.h:83
DLLEXTERN typedef void * nsuMemory_p
Definition: type.h:86
DLLEXTERN typedef char * nsuCharBuf_p
Definition: type.h:82
DLLEXTERN typedef std::vector< char > nsuBytes_t
Definition: type.h:81
DLLEXTERN typedef uint32_t nsuRegValue_t
Definition: type.h:90
DLLEXTERN typedef uint8_t nsuChnlNum_t
Definition: type.h:85
DLLEXTERN typedef uint32_t nsuRegAddr_t
Definition: type.h:89