2016年02月29日

STM8を調べる(7): STM8のメモリ構成は?(弐)

メモリアクセスが1バイト、2バイト、3バイトでアクセスするパターンがあるということで、すこし面倒そうなSTM8ですが、PMにメモリインタフェースアークてくちゃの図があるので見てみましょう。

STM8L_0016.png

まず、STM8はハーバードアーキテクチャですが、この意味は、プログラムメモリとデータメモリを別にアクセスする構成を指します。
これにより、プログラムを実行するときに、コードを取ってくるという作業とデータにアクセスする作業を並列に実行することが出来るようにしています。

小さなマイコンでは、ハーバードアーキテクチャを採用しないことも多いのですが、STM8はこのあたりも工夫していることが見えます。


posted by EWARMJP at 12:00| Comment(0) | TrackBack(0) | STマイクロ | このブログの読者になる | 更新情報をチェックする

2016年02月28日

STM8を調べる(6): STM8のメモリ構成は?

STM8は8ビットマイコンなので、メモリ周りの構成が複雑です。

まずPCが24ビットありますので、プログラム空間は16MByteあります。
また、PC一つでアクセスできるので、リニアなメモリ空間が使えます。

覚えること1: 1、2、3バイトでアドレスする可能性があるのでPageとSectionを覚えます。
  • Page [0xXXXX00 〜0xXXXXFF]の256バイトのメモリ領域 XXXXはページ(Page)ナンバーとなります。
  • Section [0xXX0000〜0xXXFFFF]の64Kバイトのメモリ領域。XXはセクション(Section)ナンバーとなります。

覚えること2: ベクターテーブルは0x8000に配置されます。
ベクターテーブルは32の4バイトエントリで構成されます。各エントリは戦闘が0x82以下24ビット値が続きます。
このあたりも、24ビットPCのためにいろいろ仕掛けが入っている模様。

CALL/CALLRとRETは同じセクションに置く必要があります(でも、まだこの命令が何をするかは知りません・・・)


データ側も見てみます。
  • スタックは必ずセクション0に配置する必要があります。
  • しばしば使うデータもコードの実行を考えるとセクション0に配置するべき
  • インデックスレジスタ(X,Y)でインデックスアドレッシングを使用するとセクション0とセクション1をまたぐことが出来る。
  • すべての周辺はメモリマップされています。





ラベル:STM8L
posted by EWARMJP at 12:00| Comment(0) | TrackBack(0) | STマイクロ | このブログの読者になる | 更新情報をチェックする

2016年02月27日

STM8を調べる(5): STM8のレジスタセットは?

6つのレジスタをもうすこし細かく見ていきます。。

まずPMに載っている図をみると、ビット幅とか解りやすいです。
STM8L_0012.png
  • Accumulator (A)
    • 8bitの汎用レジスタです。
    • アキュミュミュレータが出てくると、演算するときにはここを多用することになりそう。
    • 気になるのは、16ビット演算をしたいときには、アキュミュレータを使わないのだろうか???それとも・・・ライブラリで実行か???これは今後すこしずつわかってくると思います。
  • Index registers (X and Y)
    • XとYの2つの16ビットレジスタがあります。
    • データ操作するときのアドレスを生成するのに使用します。
    • 割込み時には自動的に保存されると書いてあります
  • Program Counter (PC)
    • 24ビットのアドレスをもつので、16MBメモリ空間を指示できるところが強みに見えます。
  • Stack Pointer (SP)
    • 16ビットレジスタ。
    • スタックは割込みや関数呼び出しでのレジスタ退避に使用されます
    • ユーザがPOP,PUSH命令でスタックを使用することも可能です。
    • 割込みが発生すると、CC,X,Y,A,PCのレジスタがスタックに自動的に積まれます。9サイクル+9バイトを使用
STM8L_0013.png
  • Condition Code register (CC)
    • 演算時の実行結果のフラグと割込みマスク
    • STM8L_0014.png

あれ、もう一つ出てきた。
  • Global configuration register (CFG_GCR)
    • 説明を読むと、まず”メモリにマップされている”レジスタで、プロセッサのコンフィギュレーションを制御する。
    • AL control bit:  アクティベーションレベル
      • 0: mainで、 
      • 1:  interrupt only active
    • CPUの省電力モードの制御をするものだそうです

レジスタは少ないですが、日ごろCortex-Mを使って汎用レジスタに慣れているので、すこし丁寧に見ないと失敗しそうです。


続きを読む
posted by EWARMJP at 12:00| Comment(0) | TrackBack(0) | STマイクロ | このブログの読者になる | 更新情報をチェックする

2016年02月26日

STM8を調べる(4): STM8のアーキテクチャは?

正直、これまでSTM8を使ったことがありません。
すこし、アーキテクチャなどから勉強しないといけません。。。

そもそもST社のSTM8のページを見ると、以下のSTM8のシリーズがあります。
  • STM8AF Series: 車載マイコン
  • STM8AL Series: 車載マイコン
  • STM8L Series:  ウルトラローパワーマイコン
  • STM8S Series:  メインストリームマイコン
  • STM8T Series:  タッチセンサーマイコン


8ビットのCPUコアのSTM8がどういう特徴があるか? まずマニュアルをダウンロードしましょう。
STM8 CPU programming manual (PM0044)が良さそうな資料でしたので、ダウンロードしました。

1章に"STM8 architecture"とあり、まさに、これですよ!知りたいことは。
  • レジスタは6個
    • 2つの16ビットインデックスレジスタ
    • 1つの8ビットアキュムレータ
    • 1つの24ビットのPC:  16MBまでのRAM,ROM,FLASHに対応可能
    • 1つの16ビットのスタックポインタ(SP): 64Kのスタック
    • 1つの8ビットのCondition Code Register: 7つの条件フラグ
  • 20のアドレッシングモード
  • 80の命令セット
  • 32個までの割込みベクターをサポート
  • いくつかのペリフェラルはDMAをサポート
  • ハーバード・アーキテクチャをもち
  • パイプラインを持つ。
  • 消費電力を抑えるためのパワーセービングを機能をもつ。
とのことで、結構ちゃんとした8ビットマイコンのようです。

ラベル:STM8L
posted by EWARMJP at 12:00| Comment(0) | TrackBack(0) | STマイクロ | このブログの読者になる | 更新情報をチェックする

2016年02月25日

STM8を調べる(3): EWSTM8のインストールを実施

昨日、STM8の開発環境としてEWSTM8をダウンロードしました。
このファイルです。このアイコン見慣れたアイコンをダブルリックして、インストールしてみます。
STM8L_0003.png
さっそくいつもの画面が出てきます。以下の画面でInstall IAR Embedded Workbenchをクリックして進めます。
STM8L_0004.png

あとはガシガシすすめるだけですが、参考まで流れを貼っておきます。
STM8L_0006.png
STM8L_0007.png
STM8L_0008.png
STM8L_0009.png
STM8L_0010.png

これでインストールが進みます。。。

で、ドライバのインストールが終わるとツールを起動するか聞いてくるので、評価ライセンスを取得しましょう。
STM8L_0011.png

今回はサイズ制限で評価ライセンスを取得しております。
あとは、登録して終わり!









posted by EWARMJP at 12:00| Comment(0) | TrackBack(0) | STマイクロ | このブログの読者になる | 更新情報をチェックする

2016年02月24日

STM8を調べる(2): STM8Lの開発環境は?

STM8L Discoveryを使うために、当然開発環境が必要です。

いろいろ調べようかと思ったんですが、STM8L Discoveryキットの裏側にあっさりと書いてあります。
STM8L_0002.png


ST社のSTVDとIARのEWSTM8の2つが書いてあります。
STVDは聞いたことないので、調べてみました。

「STVD:ST Visual develop IDE for developing ST7 and STM8 applications 」で、以下のように書いてあります。

C Compiler support includes Cosmic C compiler (available at www.cosmicsoftware.com) and Raisonance C compiler (available at www.raisonance.com).

純正のものもあるのかなぁぁ???ぐらいで、IARのホームページからEWSTM8をダウンロードすることにしました。
今日はネットワークが遅くて、しばらく時間がかかりそうです。


ラベル:STM8L
posted by EWARMJP at 12:00| Comment(0) | TrackBack(0) | STマイクロ | このブログの読者になる | 更新情報をチェックする