我想从DML方法中嵌入的C函数中生成日志消息。以下面的示例代码为例,从regs库的write()方法调用fib()函数。C可用的日志方法都需要指向当前设备的指针。
有没有方法获取调用嵌入式函数的设备?我需要将设备指针传递到fib()吗?
dml 1.2; device simple_embedded; parameter documentation = "Embedding C code example for" + " Model Builder User's Guide"; parameter desc = "example of C code"; extern int fib(int x); bank regs { register r0 size 4 @0x0000 { parameter allocate = false; parameter configuration = "none"; method write(val) { log "info": "Fibonacci(%d) = %d.", val, fib(val); } method read() -> (value) { // Must be implemented to compile } } } header %{ int fib(int x); %} footer %{ int fib(int x) { SIM_LOG_INFO(1, mydev, 0, "Generating Fibonacci for %d", x); if (x < 2) return 1; else return fib(x-1) + fib(x-2); } %}
我想从嵌入式C函数进行日志记录。