2010年7月25日日曜日
2010年7月17日土曜日
「12ステップで作る 組込みOS自作入門」- KOZOSのスレッド生成を変えてみる part3
p.14~p.17にかけてクロスコンパイラのビルドの話があります。先週ブログに書いたように、cygwinでビルドしようとすると、なんとシェル(shell)がハング! コントロールCでも応答なし。おまけにWindowsのシャットダウンもできなくなる始末です。
cygwinのデフォルトのシェル(shell)の問題ではないかと思い、cygwinのsetupからminttyを選択し新しいシェルとして追加インストールしました。試しにbinutilsをビルドしてみましたが、ここまではまったく問題なしです。
2010年7月10日土曜日
Cygwinハング!?
とりあえず、cygwinでH8用のクロス環境を作ろうと、cygwin環境を設定の上、binutilsをダウンロードしてビルドしたが、binutilsのビルド中にcygwinが固まる。別のパソコンでやってみてもcygwinが固まる。更には、Windowsをシャットダウンできなくなる。
参考:H8マイコンのソフトウェア開発環境を整備しよう
参考:H8マイコンのソフトウェア開発環境を整備しよう
2010年7月4日日曜日
「12ステップで作る 組込みOS自作入門」- KOZOSのスレッド生成を変えてみる part2
KOZOSのレディキューですが、次のようにプライオリティごとにあります。
static struct {
kz_thread *head;
kz_thread *tail;
} readyque[PRIORITY_NUM];
一方、レディキューは1つにするという考え方もあると思います。そのほうがシンプルですし。例えば、こんな感じで
typedef struct _kz_list {
kz_thread *thrd; /* スレッド */
int aux; /* 補助情報 */
struct _kz_list *next; /* 次の要素 */
} kz_list;
static kz_list readyque;
auxという補助情報ですが、基本的にはプライオリティ値を入れます。ただ、先頭要素であるreadyqueにはリストにつながっている要素数を入れておきます。
次にリスト操作のAPIを考えて見ますが、
/* スレッドをリストに挿入する */
void kz_insert(kz_list* list, kz_thread* thrd);
例えば、新しくスレッドを作成した場合は、kz_insertを呼び出してreadyque
にスレッドを挿入します。スレッドの挿入は、プライオリティ値の小さい順に
しておきます。
iPhone OSの進化で見放されるiPod Touch ?
うーむ、互換性がないのでインストールされませんでした、とiTunesに言われても困りますね。最初にアプリケーションを買った時は、この古いOSで動いてたのですから。新しいOSについていくアプリケーションは、古いOSしか動かないハードウェアを見放すというわけでしょうか? 今後もiPhone OSは進化を続けるでしょうね。そして、アプリケーションはそれを追いかける。すると、古いOSしか動かないハードは魅力を失い、新しいハードへ移行する。
登録:
投稿 (Atom)