Ported CDIOs
This commit is contained in:
@@ -22,26 +22,26 @@ namespace JabyEngine {
|
||||
}
|
||||
|
||||
template<typename...ARGS>
|
||||
static void send(CD_IO::CommandFifo_t& cmd_fifo, CD_IO::ParameterFifo_t& parameter_fifo, CD_IO::Command::Info cmd, ARGS...args) {
|
||||
while(CD_IO::IndexStatus.read().is_bit_set(CD_IO::IndexStatus::IsTransmissionBusy));
|
||||
static void send(CD_IO::CommandFifo_v& cmd_fifo, CD_IO::ParameterFifo_v& parameter_fifo, CD_IO::Command::Desc cmd, ARGS...args) {
|
||||
while(CD_IO::IndexStatus.is_set(CD_IO::IndexStatus_t::IsTransmissionBusy));
|
||||
|
||||
(parameter_fifo.write(static_cast<uint8_t>(args)), ...);
|
||||
cmd_fifo.write(cmd.id);
|
||||
((parameter_fifo = args),...);
|
||||
cmd_fifo = cmd.id;
|
||||
}
|
||||
|
||||
template<typename T, typename...ARGS>
|
||||
static void send(CD_IO::Command::Info cmd, ARGS...args) {
|
||||
static void send(CD_IO::Command::Desc cmd, ARGS...args) {
|
||||
send(T::CommandFifo, T::ParameterFifo, cmd, args...);
|
||||
}
|
||||
|
||||
template<typename...ARGS>
|
||||
static void send_wait(CD_IO::CommandFifo_t& cmd_fifo, CD_IO::ParameterFifo_t& parameter_fifo, CD_IO::Command::Info cmd, ARGS...args) {
|
||||
static void send_wait(CD_IO::CommandFifo_v& cmd_fifo, CD_IO::ParameterFifo_v& parameter_fifo, CD_IO::Command::Desc cmd, ARGS...args) {
|
||||
send(cmd_fifo, parameter_fifo, cmd, args...);
|
||||
wait_until(cmd.complete_irq);
|
||||
}
|
||||
|
||||
template<typename T, typename...ARGS>
|
||||
static void send_wait(CD_IO::Command::Info cmd, ARGS...args) {
|
||||
static void send_wait(CD_IO::Command::Desc cmd, ARGS...args) {
|
||||
send_wait(T::CommandFifo, T::ParameterFifo, cmd, args...);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user