API †タスクの生成 †create_task関数 †タスクを生成する tid_t create_task(void (*func)(void))
create_task_rt関数 †周期タスクを生成する tid_t create_task_rt(int priority, ulong_t period, void (*func)(void))
create_task_at関数 †周期タスクを生成する。create_task_rt関数とは違い、この関数で生成されたタスクはOSのスケジューラで管理されない。このタスクの起床はすべてHWで管理されるため、スケジューラのオーバーヘッドがない。ただし、このタスクは8つあるコンテキストの1つを占領する。そのため、この関数を呼びすぎると、通常のタスクを実行するために必要なコンテキストが不足してしまう可能性がある。 tid_t create_task_at(int priority, ulong_t period, void (*func)(void))
DMA †priorityの設定 †dma_set_priority(int p)
DMA終了の確認 †dma_check(int ch)
DMAの実行 †メモリ間の転送 dma_m2m(int ch, unsigned long s_addr, unsigned long d_addr, unsigned long length)
ROMからSDRAMの転送 dma_rom2sdram(int ch, unsigned long s_addr, unsigned long d_addr, unsigned long length)
I/O,メモリ間の転送 dma_[a]2[b][c](int ch, unsigned long s_addr, unsigned long d_addr, unsigned long length)
セマフォの利用 †down_sem関数 †ソフトウェアセマフォを獲得する down_sem(semaphore_t *sem)
up_sem関数 †ソフトウェアセマフォを解放する up_sem(semaphore_t *sem)
rgpex関数 †ハードウェアセマフォを獲得し共有データをREAD rgpex(ulong_t gpreg, ulong_t shreg)
wgpex関数 †ハードウェアセマフォを解放し共有データをWRITE wgpex(ulong_t gpreg, ulong_t shreg)
Serial †シリアルに文字列を出力 †出力ポートは0に固定。 printk(*format, ...);
シリアルに文字列を出力2 †出力ポートは0に固定。変数は出力できない。 printk(*str); シリアルから1バイト受信 †unsigned char serial_getc(int ch);
シリアルに1バイト送信 †void serial_putc(int ch, unsigned char data);
PIO †PIOを初期化 †pio_setup(void) PIOに出力 †pio_put(unsigned long data) SPI †SPIを初期化 †spi_init(ulong_t slave_num) SPIに出力する †spi_put(ulong_t slave_num, ulong_t data) PWM †PWMを初期化 †void pwmgen_init(int ch)
PWMを開始 †pwmgen_start(int ch, ulong_t cycle, ulong_t reversetime, int deadtime, int way)
PWMを停止 †pwmgen_stop(int ch) PWMをクリア †pwmgen_clear(int ch) PWMに値をセット †pwmgen_set(int ch, int reversetime)
パルスカウンタ †パルスカウンタを初期化 †plscntr_init(int ch) パルスカウンタを開始 †plscntr_start(int ch) パルスカウンタのカウントレジスタを読む †ulong_t plscntr_count_read(int ch); パルスカウンタのコントロールレジスタを読む †ulong_t plscntr_control_read(int ch); パルスカウンタのコントロールレジスタに書く †plsctnr_write(int ch, ulong_t data) |