stellaris

リングバッファ

今回は、リングバッファについてです。 Ring Buffer モジュールは、utils/ringbuf.c、utils/ringbuf.h に含まれています。 しかしながら、リードポインタのライトポインタ追い越しとか、1byte毎にポインタを 割り込み抑止して更新するとか、ちょっといただけ…

Simple Task Scheduler

今回は、StellarisWareのSimple Task Schedulerライブラリをみてみます。Simple Task Schedulerは、utils/scheduler.c で提供されます。ユーザーズガイドによると、 一定間隔での関数呼び出しす必要のあるアプリケーションを簡単に実装する方法を提供する 呼…

アライメントの話

stellarisのようなARMのCPUでは、メモリアクセスの際のアドレス制約があるので、コンパイラは構造体をアライメントに従って配置してくれます。しかし、ローンチパッドのようにRAMが少なかったり、構造体をバッファからシリアライズ・デシリアライズしたい場…

PWM

TivaCローンチパッドのTM4C123GH6PMには、16ch PWM出力がついているようですが、stellarisローンチパッドのLM4F120には、PWMモジュールがついていません。代わりにタイマをPWMモードで使うことができるので試してみます。まず、タイマをPWMモードで使う場合…

BitBand

今回、ライブラリの使い方は置いといて、ARM Cortex-MのBitBandという機能について見てみます。BitBandについては、こちらでわかりやすく説明されています。要約すると、RAMやレジスタを複数箇所で触っている場合、1ビット操作をしたいときに、普通はディス…

シリアル通信

Stellaris Wareでは、いくつかの方法でシリアル通信が可能です。今回は、ユーティリティライブラリのUART Standard IOモジュールを使ってみます。UART Standard IOはutils/uartstdio.c、utils/uartstdio.hで提供されます。UART上で、C標準ライブラリのstdio.…

Micro Standard Library

先日から、Stellarisローンチパッドで遊んでいます。Stellarisローンチパッドには、Stellaris Wareというライブラリ群がバンドルされているので、その使い方を調べていきます。今回はMicro Standard Libraryという、C標準ライブラリの非常に小さなサブセット…

Stellaris ローンチパッド

1年くらい前に、共立エレショップでTIのStellarisローンチパッドを買いました。http://eleshop.jp/shop/g/gC9Q361/現在、\1,680になっていますが、当時、\500(お一人様4個まで)で売られていたので、きっちり4つ買いました。 Stellarisはルミナリーマイクロの…