2012/05/12

組込み用RTOS作成(μITRON風)1

仕事で開発ツールCubeSuite(マイコン:78K0R)を使うことがあったけど、このCubeSuite、Freeでコードジェネレータが付いていてシミュレータまで付いている!!
これは、趣味や組込みC言語の勉強に持って来いだ。こことか見て勉強したらどうだろう。ただ対応したマイコンボードが秋月とかであんまり売ってないが、、、
とりあえずなんか作ってみようと思ったが、ソフトを組むのにやっぱりOSがないと組みにくい。と言ってもゴリゴリに使うわけではないし、趣味で組むのにRTOSを購入なんて出来ない。なので自作のなんちゃってRTOS(μITRON風)を作ってみた。
機能はとりあえず、cre_tskrot_rdqdly_tskだけ。
タスクのディスパッチをどう実現するか?
タスク毎にスタック領域を持っておき、ディスパッチの時にレジスタ値をPUSHして、スタックポインタの値はタスクコントロールブロックに保存する。次に実行するタクスのスタックポインタを保存先からリストアしてレジスタ値をPOPすれば、元の状態に戻るのでRET命令でリストアしたスタックポインタに積まれた戻りアドレスに従って戻っていく。
こんな感じにしてみた。(dispatch.asm)

;-----------------------------------------------------------
; void dispatch(int* pSaveSP, int iRestoreSP)
;  AX = pSaveSPのアドレス
;  SP+0 = 戻りアドレス(LL)
;  SP+1 = 戻りアドレス(LH)
;  SP+2 = 戻りアドレス(HL)
;  SP+3 = 戻りアドレス(HH)
;  SP+4 = iRestoreSPの値
;-----------------------------------------------------------
PUBLIC _dispatch

@@LCODEL CSEG
_dispatch:
PUSH AX
PUSH BC
PUSH DE
PUSH HL
MOVW DE,AX ;pSaveSPのアドレスをDEに保存
MOVW AX,SP ;SP値取り出し
MOVW [DE],AX ;*pSaveSP に SP値を保存
MOVW HL,AX ;SPをHLに保存
MOVW AX,[HL+4+8] ;iRestoreSP値取り出し
MOVW SP,AX ;SPにiRestoreSPをセット 
POP HL
POP DE
POP BC
POP AX
RET


END

これでタスクの切り替えが可能になった。後はタスクの初っ端をどうやって呼び出すか?
とりあえず、アセンブラが必要そうなのはここまでなので後はすべてC言語で書くとする。
続く

2012/04/29

ケータイ・スマホ2台持ち

以前、「スマホ半額導入記」で書いたが、現在でもケータイとスマホの2台持ちをしている。理由はそのほうが安いから。。。
スマホの方は、b-mobile(U300)のSIMを使って、
ケータイの基本使用料1200円ぐらい+ b-mobile 1ヶ月あたり2300円=3500円。
今回、b-mobile(U300)の期限が切れた&やっぱり300kbps通信では遅いと感じるので
So-netモバイル3Gに乗り換えることにした。
キャンペーン中で2年縛りながら、1年間は2,455円+210円(モバイルコース)、その後も2,770円+210円(モバイルコース)と3,000円以下で14Mbpsの3G環境が手に入る。
ついでにほとんど使用しなくなったi-modeの契約を解除して-300円。
結果、
ケータイの基本使用料900円ぐらい+ So-net2,665円=3,565円!
キャンペーン終了後で、
ケータイの基本使用料900円ぐらい+ So-net2,980円=3,880円!
やっぱり安い2台持ち。。。

2012/02/19

blog記事をfacebookに自動投稿する

ここ」を参考に設定。
facebookの検索欄に「rss graffiti」と入力してRSS Graffitiアプリをクリック。
「Click here to authorize RSS Graffiti」をクリックして、許可したら
「Add feed」をクリックして、feed URLを入力。
Bloggerの場合「ブログのURL」+「/rss.xml」を入力。
うまくPreview表示できたら「save」で完了。

Twitterのつぶやきをfacebookへ自動投稿する

ここを参考にして設定。
facebookの検索欄に「twitter」と入力してTwitterアプリで設定するだけ。