-
Notifications
You must be signed in to change notification settings - Fork 3.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP][µTVM] Add OpenOCD Low-Level Device (RISC-V Support) #3756
Conversation
`test_codegen_c_host_fadd.py` accidentally made it into the last MicroTVM PR (and stole a test from `test_codegen_c_host.py`???).
See also comments. The main improvement that I think we could make here is to avoid repetitive creation of temporary std::string objects during command construction and receive, by making buffers as state of the tcl_socket . For example, the API below makes cmd_stream and reply as part of the state. Although it won't eliminate all of creation deletion of std::string, it will somewhat reduces the cost. socket_.cmd_stream() << "array unset output";
socket_.SendCommand();
res = socket_.last_reply(); |
Thanks @weberlo this PR is now merged |
This PR adds a low-level device backend to µTVM (initial implementation here) that enables the use of any device which features a JTAG interface. In order to do so, OpenOCD is used to mediate a connection between µTVM and the device. In particular, OpenOCD exposes a TCP socket, which µTVM connects to and uses to send Tcl commands to the device.
There are still some unimplemented features:
CC @Mutinifni @u99127 @liangfu @ajtulloch @tqchen