タグ

ブックマーク / namakin.hatenablog.com (3)

  • ATS で組み込みドライバを実装してみる③ - でんちゅーがらす

    「――何かを怠けるのに、理由が要るかい?」 はい、ATSでRXの端子ドライバを書いてみる③。今回で最終回です。 今回は、今まで準備してきた道具を使って、端子を操作する簡単なプログラム(証明付き)を書いてみます。 仕様 まずは、どんなプログラムを書くのかを決めねばなりません。↓のようなものを目指します。 ① 起動する。 ② P00端子に500ミリ秒間Highを出力する。 ③ P00端子に250ミリ秒間Lowを出力する。 ④ P00端子に400ミリ秒間Highを出力する。 ⑤ P00端子にLowを出力する。 ⑥ 終了する。 端子の番号は(見てわかる通り)適当です。もし、この端子の先にLEDが繋がっていれば、それが2回点灯することになります。いわゆるLチカです。 では次に、この仕様を型によって表現します。そのためにいくつか新しい定義を行います。 出力履歴 datasort output_dura

    ATS で組み込みドライバを実装してみる③ - でんちゅーがらす
    masterq
    masterq 2018/10/09
    "「ATSはそういう言語じゃないぞ」というのが正解なのだと思います。簡単な型注釈だけを使って、本格的な証明が必要なときはpraxiでも使ってごまかせば良い、というのが本来の使い方"
  • ATS で組み込みドライバを実装してみる② - でんちゅーがらす

    プログラマの三大美徳 怠惰 怠惰 アンド怠惰 スタンド攻撃を受けていて遅くなりました。「ATSで組み込みドライバを作ってみる」第二回です。端子ドライバ体の解説をして行きたいと思います。 ”端子”を”ドライブ”するぞ! 今回はハードウェアべったりな内容なので、詳しく理解したい人はRX110のユーザーズマニュアル(要ユーザー登録)を見ながら読むことをお勧めします。 https://www.renesas.com/ja-jp/doc/products/mpumcu/doc/rx_family/r01uh0421jj0120-rx110.pdf 一応、マニュアルを見ずに読む人にも配慮して書くつもりですが。そんな装備で大丈夫か? 端子 まずは端子を示すデータ種を定義します。 RXシリーズの端子は、0〜Jのポートと0〜7の番号の組み合わせで表現されます。 datasort IOPort = | Po

    ATS で組み込みドライバを実装してみる② - でんちゅーがらす
  • ATS で組み込みドライバを実装してみる - でんちゅーがらす

    暇なのか 暇じゃないのか 暇なのか というわけで、ATS言語の勉強も兼ねて、組み込みのドライバを書いてみます。 目標は、できるだけ安全なドライバを作ること。ATSの表現能力や、課題があるとしたら何なのかという事を探ってみることも目的です。 実用性とか、実際に動作するかどうかは、ぶっちゃけ余り気にしません。 まあ、動くようには作るつもりですが、実機も持ってないので……。 ATSとはなんじゃ? という人は ATSは、証明プログラミングに対応したプログラミング言語です。 同様の言語は他にもありますが、その中でも「実際に動作するプログラムを記述することを前提にしている」「線形型の仕組みを採用することで、安全なリソース管理手法を提供している」のがATSの特徴です。……の、はずです。 詳しいことは、↓を参照してください。 Japan ATS User Group 公式サイト そもそも、証明プログラミン

    ATS で組み込みドライバを実装してみる - でんちゅーがらす
  • 1