23 #if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_BLUE 24 #include "../../Tools/Linux_HAL_Essentials/pru/aiopru/RcAioPRU_BBBLUE_bin.h" 25 #elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_LINUX_POCKET 26 #include "../../Tools/Linux_HAL_Essentials/pru/aiopru/RcAioPRU_POCKET_bin.h" 28 #include "../../Tools/Linux_HAL_Essentials/pru/aiopru/RcAioPRU_BBBMINI_bin.h" 31 using namespace Linux;
35 AP_HAL::panic(
"RCOutputAioPRU.cpp:SIGBUS error gernerated\n");
45 mem_fd =
open(
"/dev/mem", O_RDWR|O_SYNC|O_CLOEXEC);
57 memcpy(iram, PRUcode,
sizeof(PRUcode));
73 if(chmask & (1U << i)) {
135 for(i = 0; i < len; i++) {
#define RCOUT_PRUSS_CTRL_BASE
int open(const char *pathname, int flags)
POSIX Open a file with integer mode flags.
#define RCOUT_PRUSS_IRAM_BASE
uint16_t get_freq(uint8_t ch)
void disable_ch(uint8_t ch)
static void catch_sigbus(int sig)
static const uint32_t TICK_PER_S
static const uint32_t TICK_PER_US
void write(uint8_t ch, uint16_t period_us)
uint16_t pending[PWM_CHAN_COUNT]
int close(int fileno)
POSIX Close a file with fileno handel.
void enable_ch(uint8_t ch)
volatile uint32_t time_high
uint16_t read(uint8_t ch)
struct Linux::RCOutput_AioPRU::pwm::@100 channel[PWM_CHAN_COUNT]
volatile uint32_t channelenable
void panic(const char *errormsg,...) FMT_PRINTF(1
#define RCOUT_PRUSS_RAM_BASE
void set_freq(uint32_t chmask, uint16_t freq_hz)