Senshu LAB
サイト内検索: AND検索 OR検索  


Counter: 17323, today: 5, yesterday: 4
Table of Contents

教材作成に有用な情報や組込み技術の情報が共有できればと考えています.
※ 本サイトの掲載内容を利用して発生した損害,障害の責は負いませんので悪しからず.


「掲示板(ARM特集?)」(2011年5月4日〜)

新規の記事は、出来るだけ新掲示板をご利用ください。

「はじめてのPIC」、丁寧な解説が嬉しい

senshu (2011-10-21 (金) 22:03:34)

「はじめてのPIC」
  ↓
http://sky.geocities.jp/home_iwamoto/index.htm

PIC18F14k50の解説は、MCC18ベースでわかり易いです。


IPアドレスの埋め込みを中止(既書き込み分の修正完了)

senshu (2011-08-30 (火) 19:58:03)

www-ice.yamagata-cit.ac.jp が、約2か月間、DNSから名前解決が不能になって
いましたが、現在は回復しています。

DNSの登録から除外されていた期間に埋め込んでいたIPアドレスの記述を
通常に戻しました。


  • senshu 2011-10-08 (土) 17:11:03
    DNSの障害が回復したと書きましたが、本質的な回復は、10/8 8:30am ごろです。
    不完全な状態でかろうじて動作していたようです。

    しかしDNSが回復した直後から、意図しない書込みが多数あり、8件ほど削除しました。

    今後も、サイトの主旨に沿わない書き込み(落書き)は削除します。

  • senshu 2011-10-10 (月) 19:54:57
    今日も10件ほど削除しました。

    虚しい作業です。

本当に困っています

  • senshu 2011-10-28 (金) 06:49:45
    ここ数日、このサイトとは無関係の書き込みが続いています。

    その都度、削除していますが、何とかならないでしょうか。
    本当にうんざりします。

    仕方がないので、コメント欄を大幅に制限しました。

  • hira? 2011-10-31 (月) 12:25:16
    CAPTURE などを付けて認証させれば、ある程度ロボットなどを寄せ付けないように
    出来ますが、悪意の無い書き込みが制限されたり、利便性が悪くなるのは、本意では
    無いでしょうし、難しいところですね。
     -----
    CAPTURE は人間にも辛い場合がありますが、最近見つけた、新たなCAPTUREの取り
    組みです、これなら、楽しく認証できそうです。(猫嫌いは問題ですがww)
    http://research.microsoft.com/en-us/um/redmond/projects/asirra/

画像認証を検討中

  • senshu 2011-10-31 (月) 13:45:07
    hiraさん、こんにちは。

    CAPTCHAは、以前も検討したことがあります。
    ちょうど認証の検討時期にサーバがDNSの登録から外れ、未対策になっていました。

    また「新掲示板」ではCAPTCHAを採用済みです。早期に移行し、旧掲示板は廃止も
    考えていましたが、「認証が必須」というのは敷居が高いのは事実です。

    現在は「主旨に沿わない書込みが行われた場合コメント欄を手作業で削除」を行っていま
    すが、かなり面倒ですし、これが続けば最終的には書き込めるページは無くなります。

    そうなる前に対策を講じたいと思っています。pukiwikiに対応したものがあれば
    良いのですが、特定の方のみに理解可能な公開パスワードも有効かもしれません。

    ここ数年でpukiwikiのコメントSPAMが進化?し、悩んでいる方が多数いることを
    確認しました。

    http://shoda.tk/archives/2009/06/pukiwiki.html

    この対策には何が効果的なのか、調べてみます。

削除対象のコメントを書いている方へ

  • senshu 2011-11-04 (金) 08:37:52
    昨日から2日間で4件削除しました。

    人間が書いているのであれば画像認証を追加しても意味はありませんが、
    何とかしなくては、、。

    【削除対象のコメントを書いている方へ】
    ここには、何度書いても無駄ですから止めてください。

このサイトの効率的な利用方法

senshu (2011-08-22 (月) 17:32:22)

このWebサイトは、PukiWikiで運用しています。

左のMENUの最上位にある更新情報をクリックすると、
ここ数日間に更新されたページが20件分、リストされます。
この中から、利用者が興味を持ったページをクリックするわけです。

実は、「更新情報」が最もアクセス件数の多いリンクです。


  • senshu 2011-08-24 (水) 09:49:27
    約2年前にスタートした新掲示板
    多くの利点があります。

    段階的に、新掲示板への移行を計画してきましたが、書込みは登録者限定でログインが
    必要なためか、利用者はごく少数です。

    メンバーリスト → http://www-ice.yamagata-cit.ac.jp/forum/memberlist.php

    ただし先日から、「評価アーカイブ」は「新掲示板」に移行しましたので、利用者
    の増加を見込んでいます。

    登録不要な気軽な書き込み → 「wiki掲示板」
    ファイルのUp/Downを利用  → 「新掲示板」
    と使い分けていただければ幸いです。

  • senshu 2011-08-26 (金) 16:17:42
    いくつかのページを読み直してみると、整理されていない、時系列の書込みが主で
    消化が難しいのかもしれません。

    解決に至るまでの試行錯誤を漏れなく書いており、それらのいくつかは後に異なる結果
    になっている場合があります。また文字量の関係で目的の情報に辿り着けない場合もあ
    る、と想像します。ページ毎に1000行を目安に分割を行っていますが、1000行は印刷す
    ると20ページを超えるボリュームです。数枚の板を巡回するだけでも容易ではないこと
    がわかります。

    avrdudeを例にとれば、約3か月の間に20枚の掲示板を使いました。これは400ページを
    超える分量があります。これは、一冊の本に匹敵します。整理された書籍とは異なり、
    整理が行われていないので、内容の理解は容易ではありません。

    また主旨から考えても、ファイルを提供するのが目的ではありませんし、思考経過を
    議論し、綴っていると考えます。

    どんな問題でも、解決には時間が必要で、紆余曲折の結果ようやく解決できること
    ばかりです。

irukaさんの新作「libmapleで仮想COM」

senshu (2011-08-19 (金) 20:00:30)

8/15の日付で、libmapleで仮想COMがされていました。

これができると、STM32の有用性が高まります。予想に反し、かなり苦労された
ようです。不具合解決の努力に敬意を表します。


多機能の判断基準

senshu (2011-08-15 (月) 16:55:29)

電子メールの送受信、デジタルカメラ、録音機、webブラウザ、QRコードリーダ、
そして本命の電話器にもなる携帯機器があります。これを多機能電話と呼ぶことは
ありません。おそらく、これらの機能は備えていて当然だからでしょう。

ワープロ・電卓・翻訳機にもなるパソコンは汎用と呼んでいます。汎用と専用は対に
なる言葉ですが、汎用機を専用機のように使っている場合も多く、線引きは困難です。

そう考えると、多機能の判断基準はどこにあるのでしょうか。


オープンソースソフトウェアとは

senshu (2011-08-15 (月) 10:18:48)

複数の方と各種のOSS(OpenSource Software)類の改善を目的にやり取りを行って
きました。各自の考え方に違いがあり、興味深いものです。

OSSのツール類に限らず多くのソフトウェアはAS ISが基本ですが、意図しない
動作をする場合も多々あります。OSSでは自助努力で解決するのが基本ですが、解決
できずに頓挫することも珍しくありません。

それでは厳しすぎるので、利用者間で支え合うことで多くの問題を改善できる、
というのがOSSの根底にある考え方だと思います。

自分ができる(あるいは自分しかできない)ことは何かを考え、取り組んでいこう
と思います。


  • senshu 2011-08-17 (水) 15:59:47
    不具合の解決に数分で完了することもあれば、数十日かけても解決できない
    場合があります。特に、自分のところで再現できない不具合は悩みの種です。

    可能性を予測して考えても、成果を挙げることは難しいようです。時には
    「できません」を回答することも必要なのかもしれません。

  • senshu 2011-08-17 (水) 17:48:52
    pic18spx用のツールを見直しました。これは比較的順調に作業が進みました。

    こうしたことも、時にはないと、、、。

  • senshu 2011-08-17 (水) 18:36:56
    このような報告も 届きました。

    少しは運気が上昇してきたかな、、。

libusb-win32更新(1.2.5)

senshu (2011-07-25 (月) 15:42:55)

libusb-win32が更新されました。

http://sourceforge.net/projects/libusb-win32/files/

早速更新しました。picspxやusbasp, AVRminiProgは問題なく動作しています。


Webサーバ、処理能力低下の原因

senshu (2011-07-22 (金) 12:46:47)

ここ数日、このWebサーバの応答速度が低下していました。

原因を探ったところ、海外のサイトから、特定のページに長大なパケットが
送られてくるのが原因とわかりました。

現在、保守していないページだったので、該当ページを削除したところ、
この不具合は解消しました。

性悪説は信じたくないのですが、意図しない不具合が起きると、それも
信じざるを得ない状況です。


  • senshu 2011-07-25 (月) 15:41:22
    その後も、約一分間隔でアクセスが続いています。

    そろそろ諦めてもらいたいところです。

  • senshu 2011-08-08 (月) 16:30:56
    継続してアタック?が続いています。応答速度低下が起きていないのが唯一の救いです。

  • senshu 2011-08-21 (日) 12:52:54
    ↑の事実から推測すると、DNS検索が可能になったのは7月中旬かもしれません。
    全く知りませんでした。

AVR wiki不調

senshu (2011-06-23 (木) 12:05:56)

回復したと思われていた AVR Wikiですが、今日はアクセスできません。

http://avrwiki.jpn.ph/wiki.cgi

安定稼働を期待します。


  • senshu 2011-06-25 (土) 18:03:14
    今日はアクセスできました。

    保守は、土日限定かな?
  • senshu 2011-08-08 (月) 16:29:13
    ここ数日、アクセスできません。

    安定なサーバの復活を切望します。



  • senshu 2011-08-15 (月) 11:02:42
    今日もアクセスできません。

    回復は何時になるでしょうか。

    自作のPC(Linuxマシン)なら無償提供できます。お申し出ください。

このサーバにアクセスする方法

senshu (2011-06-04 (土) 21:46:27)

kumanさんの掲示板で、「このサイトにアクセスできない」という報告がありました。
このサーバにアクセスできない方に解決策を伝えることはできません。そこで、掲示板
には対処方法を書きました。困っている方に以下の方法を伝えていただければ幸いです。

学科の改編により、このサーバのURLは http://www.iec.yamagata-cit.ac.jp になり
ました。DNSサーバから以前のドメイン名は削除されたので、以下のURLにてアクセス
してください。(Picoさんからのアドバイスにより、内容を変更しました)

http://202.35.250.1/ken/senshu/sitedev/


関連情報


アクセス状況

  • senshu 2011-06-08 (水) 16:30:52
    DNSにwww-ice.〜の名称が消えてから、本当にアクセスが少なくなりました。

    access-20110608.png

    大半が私のアクセスです。でもSPAMも皆無になり、これはこれで快適です。
    しかし、情報公開の意味では寂しいものがあります。

    www.iec.〜に変わっただけなので、すぐに正式なURLで公開は難しくは
    ありません。対応策を考えてみたいと思います。

hostsファイルの変更をせずにアクセスする方法

  • Pico? 2011-06-08 (水) 17:32:35
    hostsファイルの編集による対策には少し抵抗を感じるので、
    私は下記リンクからアクセスしています。
    http://202.35.250.1/ken/senshu/sitedev/
  • Pico? 2011-06-08 (水) 20:59:51
    補足です。
    hostsファイルを編集していない場合は
    画面左のMENUリンクから新掲示板へ行くとエラーになります。
    直接リンク http://202.35.250.1/forum/ で入れました。
  • senshu 2011-06-08 (水) 21:07:12
    Picoさん、こんばんは。

    ご指摘のとおりです。実は、数日前まで、IPアドレスを直接指定の場合には
    アクセスを拒否する設定でした。DNSの対象から外れたのを契機に、IPアドレス
    の直接指定でもアクセスを許すように変更を行っています。そのために、上記の
    URL表記でもアクセス可能になりました。

    画面左のMENUリンクから新掲示板へ行くとエラーになります。
    の件は、対策を行いました。ご確認ください。

    時間が確保できたら、DNSに登録された場所に移行したいと思います。
    当面は、上記のIPアドレス指定を利用してください。

  • Pico? 2011-06-09 (木) 00:15:02
    リンク修正ありがとうございます。
    新掲示板へ入れることを確認しました。

    五月雨式の報告で申し訳ありませんが、
    MENUリンクの上の「千秋ゼミ」ボタンも修正が必要なようです。
  • senshu 2011-06-09 (木) 00:17:11
    はい、確認済みですが、リモートからは修正不能です。

    IPアドレスを埋め込みたくないので、対応策を検討中です。

暫定的ですが、修正完了

  • senshu 2011-06-09 (木) 08:19:43
    不本意ですが、DNSに未登録となった関係で、IPアドレスに修正しました。
    エラーは起きなくなったはずです。

新掲示板ではログイン不能

  • senshu 2011-06-11 (土) 06:52:59
    >エラーは起きなくなったはずです。
    と書きましたが、やはりいくつかの箇所でエラーが起きます。

    従来通りのアクセスを希望する方は、hostsファイルに以下の一行を追加の上、
    ご利用ください。
    202.35.250.1 www-ice.yamagata-cit.ac.jp

恐るべし、Google

  • senshu 2011-06-16 (木) 23:27:59
    いつの間にか、このサイトがGoogleで検索対象になっていました。

    いくつかのサイトで、IPアドレスのリンクが登録されたからでしょうか。

    恐るべし、Google。これで、広告する必要性が薄れました。
    とりあえず、しばらくはこれで行きます。

DNS登録復活

  • senshu 2011-08-23 (火) 13:19:56
    http://www-ice.yamagata-cit.ac.jp/ken/senshu/sitedev/

    という従来のURLで、このサイトにアクセス可能になりました。

    今後は、IPアドレスではなく、上記のアドレスをご利用ください。

    Windows\system32\drivers\etc\hosts ファイルなどを変更していた方は、
    お手数ですが元に戻していただきたいと思います。

長嶋 洋一さんのPropeller日記

senshu (2011-06-04 (土) 09:13:49)

parallax社のマイコンに関する日記です。Propellerチップがkumanさんの掲示板で
話題になっているので、検索してみました。

日本語でわかりやすく書かれた日記を見つけました。わずか100日余りに書かれたも
のですが、その圧倒的なボリュームに驚かされます。地力のある方は違う、という
ことでしょうか。私も頑張らなければ、と感じました。

http://nagasm.suac.net/ASL/Propeller/diary01.html 2008年2月9日
http://nagasm.suac.net/ASL/Propeller/diary02.html
http://nagasm.suac.net/ASL/Propeller/diary03.html
http://nagasm.suac.net/ASL/Propeller/diary04.html
http://nagasm.suac.net/ASL/Propeller/diary05.html 2008年5月21日


PIC32を使ったArduinoモドキ

Pico? (2011-05-28 (土) 13:14:19)

マイクロチップ社のPIC32を使ったArduinoモドキ「chipKIT」が公開されました。
ソフトウェアもArduino互換のようです。

マイクロチップ社のchipKITページ

DIGILENT社のchipKITページ

MPIDE ( Multi-platform IDE )

pic32-Arduino-Bootloader


  • senshu 2011-05-28 (土) 17:53:49
    興味深い情報をありがとうございます。

    複数の選択肢があるのはよいことだと思いますが、だれが支えるかが
    大きな問題になりそうです。

MCHIP社のどこにも負けないもの

MAPLE IDE 0.0.10(正式版)公開

senshu (2011-05-26 (木) 14:55:58)

MAPLE IDE 0.0.10の正式版が公開されています。

http://forums.leaflabs.com/topic.php?id=785

0.0.10beta版に、いくつかの整理が追加されたようです。

0.0.9からの移行時の注意点ですが、libmapleは移植性が向上し、多くの
ボードをサポート可能になりました。そのために、新規ボードの実装方法
に違いが生じています。

そのため、0.0.10をSTBeeで使えるようにするには、しばらくの検討が必要です。


MAPLE IDE 0.0.11が公開されました

  • senshu 2011-06-04 (土) 07:37:35
    6/1に0.0.11が公開されました。

    何が変更されたのか気になったので、0.0.10と差分をとってみました。その結果は
    意外なものでした。

    サンプルのコメント部分の修正と解説 html中の betaという単語の削除が中心です。
    ということは0.0.10のリリースは実はbetaリリース?(0.0.10betaと差分をとった
    可能性もあります)という冗談はさておき、こうした部分にも目が届くようになった
    のはとても良いことです。でもコメントは機械的な整形が行われたようにも見えるの
    で、注視していきたいと思います。

    stm32VLDやSTBee用の修正が必要ですが、今後は0.0.11以降を使うのが正解です。

v0.0.11対応のSTBee, STBee-mini 用の差分

  • senshu 2011-06-13 (月) 21:22:36
    irukaさんのゲストブックで、xshigeさんのv0.0.11対応のSTBee, STBee-mini 用の差分が入手できます。

    まだ試していませんが、これで v 0.0.11にも対応が可能になると思います。

  • senshu 2011-06-13 (月) 21:49:18
    irukaさんも追試されています。

    http://hp.vector.co.jp/authors/VA000177/html/mapleIDE.html

    これが上手く動作すれば、ARM入門者にとって、最も手軽に使える
    ツールになると思います。

ARMマイコン用の開発環境

senshu (2011-05-25 (水) 09:15:50)

無償で利用できるARMマイコン(stm32-VL discovery)用の開発環境を比較してみました。

番号名称バージョン種類コード制限サイズ
1IAR, Embedded Workbench(R) for ARM5.50.7評価版32kBまで1.5GB
2Keil MDK-ARM™4.13a評価版32kBまで900MB
3Maple IDE0.0.9正式版制限なし85MB(javaを除く)
4Atollic, True STUDIO(R)1.40Lite版制限なし390MB
5Atollic, True STUDIO(R)2.1.0Lite版制限なし530MB


1,2は本格的な開発環境であり、STM32以外のARMマイコンにも広く対応しています。
1は英語と日本語の両モードで動作します。どちらもインストールには、巨大なディ
スク領域が必要です。
4は広告があるので、あまり使いこんではおりません。以下に詳しい解説があります
ので、ここを参照ください。

一方、3は、AVRマイコン用のArduinoをベースにSTM32用に修正した開発環境です。
※ オリジナルのArduino開発環境よりも小さく(サンプルが少ないためか?)導入や
利用が容易です。javaの実行環境は120MB程度とかなり大きいのですが、インストール
されている場合がほとんどです。しかしjavaがインストールされていない場合には、
このサイズを追加する必要があります。

なお、STM32-VL discoveryを利用するにはST-LINK ver 1のプロトコルに対応して
いる必要があります。

・IAR ver 6.0以降はST-LINK ver 2用、STM32-VLD用のデバッグ不可(ハングアップする)。
 また、サンプルのコードも修正を行わないとコンパイルエラーになる。
・Keil社の開発環境もバージョンにより、ST-LINK ver2に移行している場合がある。

今後、商用の開発環境では、ST-LINK ver 1のサポートは期待できないようです。
最新の評価版を入手し、このことがわからずに、数時間の試行錯誤を行いました。

ということで、ARMマイコンの最初の体験(入門)には、Maple IDEをお勧めします。
機能は限られますので複雑な開発には不向きですが、悩むことも多くはありません。


  • senshu 2011-05-25 (水) 16:55:53
    KeilやIARは多数の書き込みツールを利用可能にするために、かなり努力している
    ようですが、新製品をサポートする時に、旧製品サポートがなくなる場合がある
    ようです。

    旧製品のサポートも継続してもらえるとありがたいのですが、難しいのでしょうか。
  • senshu 2011-05-26 (木) 20:21:28
    Keil IDEは悩むことなく、IAR のEWBは多少の試行錯誤にて利用できました。しかし、
    True STUDIO(R)では、かなり悩まされています。versionも最新に更新してみましたが、
    状況は変わりません。

    TrueSTUDIOのようなEclipseベースの開発環境は多数あるのですが、その中でも利用が
    難しい部類に属すると感じます。自分で作るソースはOKなのですが、AN3268のプロジェ
    クトを開くこともできません。

    この手のツールの使い方に詳しい方に、利用上のコツをお聞きしたいです。
    ………広告が毎回3秒間表示されるなど印象が良くないので、コード制限に
    かからない限り、利用は諦めようと思っています。

ST-LINK firmwareの更新内容

  • senshu 2011-05-26 (木) 22:14:04
    stm32-VL discovery に付属のST-LINK(一体物)のfirmwareも、以下のアップデータ
    で更新できることを確認しました。

    http://www.st.com/internet/evalboard/product/219866.jsp

    STlink-upd.png

    ■ 更新内容(2011/03/02 11:24)
    ST-LinkUpgrade.exe v2.1:
    
    - On ST-Link, upgrade firmware to version V1J12S3:
      * modifications for SWD communication (STM32) ← 【注目】

メニューに「参照数ベスト100」を追加

senshu (2011-05-25 (水) 07:49:18)

このサイトも、スタートして8年を迎えます。

そこで、参照数の上位100のページを追加してみました。公開が古い順に
なっていないことが一目瞭然です。

人気を反映しているかは不明ですが、興味深い情報です。


Linux用のST-LINK対応書き込みコマンド

senshu (2011-05-21 (土) 08:18:15)

以下のURLで「stlink-download」というST-LINK対応のCLIツールが公開されています。

http://code.google.com/p/arm-utilities/

stlink-downloadは、ST-LINK_CLIと同等の機能があるので、これを利用すれば、
Linuxでも Maple IDEを使って、STM32-discoverlyのソフト開発ができます。


動作を確認

  • senshu 2011-05-23 (月) 11:36:10
    stlink-2011-3-30.tgzを入手し、Ubuntu 10.04上で、make ; make install しました。
    エラーもなく完了し、stm32-VLDを差し込んだところ、
    **:~/work/stlink$ ls -l /dev/stlink*
    lrwxrwxrwx 1 root root       10 2011-05-23 11:35 /dev/stlink -> stlink-sg3
    crw-rw-r-- 1 root tape  21,   3 2011-05-23 11:35 /dev/stlink-sg3
    crw-rw-r-- 1 root tape 189, 130 2011-05-23 11:35 /dev/stlinkusb1
    というデバイスが現れました。これは好感触です。いくつかのコマンドを実行して
    みました。この程度のコマンドがあれば、avrdude的な使い方ができます。
    /dev/stlinkを指定するのがポイントです。最初、/dev/sg0を指定し、何も
    動作しないので悩みましたが、Linuxでもstm32-VLDを利用できることを確認できました。
    ST-LINK_CLIで数時間要した動作確認は、数分で済みました。ソース開示のありがたさ
    を感じます。

    ■ HELPの表示
    ***:~/work/stlink$ sudo stlink-download
    
    Usage: stlink-download /dev/sg0 <command> ...
    
    Commands are:
      info version blink
      debug reg<regnum> wreg<regnum>=<value> regs reset run step status
      erase=<addr> erase=all<addr>
      read<memaddr> write<memaddr>=<val>
      flash:r:<file> flash:w:<file> flash:v:<file>
    
    Note: The STLink firmware does a flawed job of pretending to be a USB
     storage devices.  It may take several minutes after plugging in before
     it is usable.
     To speed up the process unplug the STLink and do:
    sudo modprobe -r usb-storage &&
    sudo modprobe usb-storage quirks=483:3744:lrwsro

    ■ 情報の表示
    **:~/work/stlink$ sudo stlink-download /dev/stlink info
    Flash size 128K (register ffff0080).
    Information block 00ff5aa5 00ff00ff 00ff00ff 00ff00ff.
    DBGMC_IDCODE 420 (Rev ID 10016420).

    ■ VLD側のversionを表示
    **:~/work/stlink$ sudo stlink-download /dev/stlink version
    Standard Vendor/Product ID 0x0483 0x3744
     Versions  STLink: 0x2  JTAG: 0x1  SWIM: 0x30
        The firmware supports a JTAG/SWD interface.
        The firmware supports a SWIM interface.

    ■ 注意点(R/Wするファイルの形式)
    読み出しを行ってみたところ、bin形式で書き出しが行われます。
    書き込みの対象も同様に、bin形式のようです。これは、dfu-utilなどと同じですが、
    やや柔軟性に欠けます。hexファイルを扱えると良いのですが、それにはソースの修正
    が必要になります。

    本物のST-LINKでも試してみましたが、以下のように認識しました。core_idが期待
    した値を返さないようですが、これは警告であり、処理は継続されます。
     ちょっと気になるのは、sudoでroot権限での動作が必要な点です。
    これはセキュリティ上の問題を起こしやすいので、対策が必要です。
    **:~/work/stlink$ sudo stlink-download /dev/stlink version
    Warning: SWD core ID 00000000 did not match the expected value of 1ba01477.
    Standard Vendor/Product ID 0x0483 0x3744
     Versions  STLink: 0x2  JTAG: 0x31  SWIM: 0x30
        The firmware supports a JTAG/SWD interface.
        The firmware supports a SWIM interface.


ちょっとおかしい

  • senshu 2011-05-23 (月) 11:51:36
    ■ ちょっとおかしい
    読みだした128kBを書き込んでみると、以下のエラーが起きます。まだ完全では
    ないようです。
    **:~/work/stlink$ sudo stlink-download /dev/stlink flash:w:a.bin
     Writing ARM memory 0x08000000..0x08020000 from a.hex.
    Flash write failed: trying to write a location that was not erased. (04)

    エラーは起きないのですが、一瞬でベリファイが完了するので要チェックです。
    **:~/work/stlink$ sudo stlink-download /dev/stlink flash:v:a.bin
     Check flash: file b.bin matched flash contents

    【追記】原因がわかりました。
    int stlink_fverify(struct stlink* sl, const char* path, stm32_addr_t addr)
    {
      return 0;
    }
    現時点ではベリファイは実装されていないのです。なんということだ、、。

ST-LINK-CLI ver 1.0の機能

senshu (2011-05-19 (木) 17:37:26)

GUIのみだったST-LINK用の制御ソフトにCLIツールが追加されました。makeコマンドから
ST-LINKを利用する時に便利だと思います。

毎度思うのですが、メーカー製のツールは書き込みはあっても、読み出し用の機能が
欠けています。読み書きができるツールの方が格段に便利だと思うのですが。

■ ST-LINK_CLI.exe のオプション

2011/03/07  12:16           115,200 ST-LINK_CLI.exe ... 意外に最近の作です。

STM32 ST-LINK CLI v1.0
STM32 ST-LINK Command Line Interface

Available commands:
===================

-c       Connect to the device using JTAG or SWD.
         Syntax : -c [JTAG/SWD]

-w8      Write 8-bit data.Syntax: -w8 <Address> <data>

-w32     Write 32-bit data.Syntax: -w32 <Address> <data>

-r8      Read memory.Syntax: -r8 <Address> <NumBytes>

- Core commands --------------------------------------------------------

-Rst     System reset.

-Run     Run application.Syntax : -Run [<Address>]
         Specify the Offset parameter if the application
         is loaded on the flash memory at a specific Address.
         Example: To run application loaded on 0x08003000
         you can use: -Run 0x08003000.

-Halt    Halt core.

-Step    Step core.

-SetBP   Set breakpoint.Syntax : -SetBP <Address>

-ClrBP   Clear all hardware breakpoints.

-CoreReg Read Core registers.Syntax : -SetBP [<Address>]

-SCore   Get Core status.

- Flash commands -------------------------------------------------------

-ME      Full chip erase.

-SE      Erase sector(s).Syntax : -SE Sector_index 

-P       Load a binary, Intel Hex or Motorolla S-record file into device memory
         Syntax  : -P <File_Path> [<Address>].
         Example1: -P "c:\application.bin" 0x08000000
         Example2: -P "c:\application.hex"

- Option bytes commands ------------------------------------------------

-OB      Configure the option bytes.
         Syntax : -OB [RDP=<Level>] [BOR_LEV=<Level>] [IWDG_SW=<Value>] 
                      [nRST_STOP=<Value>] [nRST_STDBY=<Value>] [BFB2=<Value>]
                      [Data0=<Value>] [Data1=<Value>] [WRP=<Value>]

         RDP=Level      : Set the flash memory read protection level.
                          Level could be one of the following levels:
                          0 : Protection disabled.
                          1 : Protection enabled.
                          2 : Protection enabled(debug and boot in SRAM
                              features are DISABLED).
                          Note: Level 2 is available on STM32F2xx and STM32L1xx
                                series only.

         BOR_LEV=<Level>: Set the Brownout Reset threshold level.
                          * For STM32L1xx:
                          0 : BOR OFF,1.45 to 1.55 V voltage range
                          1 : 1.69 to 1.8 V voltage range
                          2 : 1.94 to 2.1 V voltage range
                          3 : 2.3 to 2.49 V voltage range
                          4 : 2.54 to 2.74V voltage range
                          5 : 2.77 to 3.0 V voltage range

                          * For STM32F2xx:
                          0 : BOR OFF, 1.8 to 2.10 V voltage range
                          1 : 2.10 to 2.40 V voltage range
                          2 : 2.40 to 2.70 V voltage range
                          3 : 2.70 to 3.60 V voltage range

         IWDG_SW=<Value>    : <Value> should be be 0 or 1:
                          0 : Hardware independent watchdog
                          1 : Software independent watchdog

         nRST_STOP=<Value>  : <Value> should be be 0 or 1:
                          0 : Reset generated when CPU enters the Stop mode
                          1 : No reset generated.

         nRST_STDBY=<Value> : <Value> should be be 0 or 1:
                          0 : Reset generated when CPU enters the Standby mode
                          1 : No reset generated.

         BFB2=<Value>       : <Value> should be be 0 or 1:
                          0 : Boot from flash bank 2 when boot pins are set
                              in boot from user Flash position(default).
                          1 : Boot from flash bank 1 when boot pins are set.
                              in boot from user Flash position(default).
                          Note: BFB2 is available only on STM32F10x XL-density
                                devices.

         Data0=<Value>: Set Data0 option byte.<Value> should be in [0..0xFF]
                        Note: Not available on STM32F2xx and STM32L1xx devices.

         Data1=<Value>: Set Data1 option byte.<Value> should be in [0..0xFF]
                        Note: Not available on STM32F2xx and STM32L1xx devices.

         WRP=<Value>  : Set the flash write protection.<Value> should be
                        in [0..0xFFFFFFFF]

-rOB     Display all Option bytes.

         For more details, please refer to the Option Bytes section in the Flash
         programming manual corresponding to your device available at www.st.com

------------------------------------------------------------------------

Note: All parameters should be in hexadecimal format.
  • senshu 2011-05-19 (木) 18:15:49
    よく読むと、-r8 アドレス バイト数というコマンドで読み出しができました。
    >ST-LINK_CLI.exe -c SWD -r8 0x08000000 0x100
    STM32 ST-LINK CLI v1.0
    STM32 ST-LINK Command Line Interface
    
    Connected via SWD.
    Device ID:0x420
    Device flash Size : 128 Kbyte
    Device family :Value Line device
    
    
    0x08000000 : 00  20  00  20  41  24  00  08  3D  24  00  08  21  01  00  08
    0x08000010 : 3D  24  00  08  3D  24  00  08  3D  24  00  08  3D  24  00  08
    0x08000020 : 3D  24  00  08  3D  24  00  08  3D  24  00  08  3D  24  00  08
    0x08000030 : 3D  24  00  08  3D  24  00  08  3D  24  00  08  DD  04  00  08
    0x08000040 : 3D  24  00  08  3D  24  00  08  3D  24  00  08  3D  24  00  08
    0x08000050 : 3D  24  00  08  3D  24  00  08  B1  02  00  08  9F  02  00  08
    0x08000060 : 8D  02  00  08  7B  02  00  08  69  02  00  08  3D  24  00  08
    0x08000070 : 3D  24  00  08  3D  24  00  08  3D  24  00  08  3D  24  00  08
    0x08000080 : 3D  24  00  08  3D  24  00  08  3D  24  00  08  3D  24  00  08
    0x08000090 : 6D  0D  00  08  3D  24  00  08  3D  24  00  08  39  02  00  08
    0x080000A0 : 3D  24  00  08  3D  24  00  08  3D  24  00  08  41  05  00  08
    0x080000B0 : DD  05  00  08  81  06  00  08  1D  07  00  08  3D  24  00  08
    0x080000C0 : 3D  24  00  08  3D  24  00  08  3D  24  00  08  3D  24  00  08
    0x080000D0 : 3D  24  00  08  19  0A  00  08  2D  0A  00  08  41  0A  00  08
    0x080000E0 : 09  02  00  08  3D  24  00  08  3D  24  00  08  40  F2  98  23
    0x080000F0 : C2  F2  00  03  1A  78  0A  B9  01  20  18  70  70  47  00  BF
    何らかのツールで加工するにしても面倒ですから、もうひと工夫が欲しいです。

FLASH書き込みでエラー発生

  • senshu 2011-05-20 (金) 15:45:24
    stm32-discoverly を使い、ST-LINK-CLIの機能を確認しました。

    GUIのツールは問題なく機能しますが、CLIでは書き込めません。(一時間以上も
    試行錯誤を行ったのですが、、、、)

    zoom

    CLIでは書き込みで以下のエラーが発生します。ただし-ME指定では消去は正常に機能し、
    Flashはすべて0xffになります。

    純正ツールで苦戦するとは思っていませんでしたが、大変困っています。ST-LINK-CLI
    は登場して間もないために情報も限られるので、対応に苦戦中です。
    ST-LINK-CLI -c SWD -P BlinkTestSTM32VLD2.cpp.hex
    STM32 ST-LINK CLI v1.0
    STM32 ST-LINK Command Line Interface
    
    Connected via SWD. ←----- 基本的な通信は行え、ターゲットも認識する
    Device ID:0x420 
    Device flash Size : 128 Kbyte
    Device family :Value Line device
    
    Flash Programming:
      File : BlinkTestSTM32VLD2.cpp.hex ←----- ファイル名も渡っている
      Address : 0x08000000 ←----- アドレスも正しい
    Flash Programming...
    アアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアア 0% 
    ↑ 絶叫に見えるアア(半角カナ文字)は日本語環境限定の制限
    
    Failure opening flash loader ← このエラーが毎回発生する(書き込みも行われない)
    
    ----
    ST-LINK-CLI -c SWD -Rst
    
    STM32 ST-LINK CLI v1.0
    STM32 ST-LINK Command Line Interface
    
    Connected via SWD.
    Device ID:0x420 
    Device flash Size : 128 Kbyte
    Device family :Value Line device
    
    MCU Reset.
    STM32 ST-LINK Utility.exeというGUIツールで書き込み、青色LEDが5回/秒 点滅する
    ことは確認できています。GUIツールは確実に動作するので、謎は深まります。

    ST-LINK-CLIのPDFの説明書に明らかな誤りが残っているのも気になります。
    Halt.png

原因が判明(ファイルが足りませんでした)

  • senshu 2011-05-20 (金) 22:34:55
    irukaさんの掲示板で、xshigeさんからアドバイスをいただきました。(以下に引用します)
    ボードのジャンパーなどは初期設定のまま、私の環境では特に問題なく動作しています。
    「Failure opening flash loader」が出ていることから推測すると、
    ST-LINK_CLI.exeが存在しているST-LINK_Utiliyのディレクトリにあるべき
    stm32f10xGLoader.bin
    stm32f10xLoader.bin
    stm32F20xLoader.bin
    stm32l15xLoader.bin
    stm32wLoader.bin
    などが存在していないように思います。 -- xshige? : 2011-05-20 (Fri) 21:38:06
    これらの binファイルは、ファームアップデート用と誤認していました。動作は未確認です
    が、ST-LINK_CLI.exeをstringsして納得しました。これが原因だと思います。
    STM32 ST-LINK Utility.exe も以下のファイルを読み込むことがあるようです。
    stm32wLoader.bin
    stm32f20xLoader.bin
    stm32f10xGLoader.bin
    stm32f10xLoader.bin

    私は空白を含むフォルダを避けるため、ST-LINK_CLI.exeなどのファイルをコピーして
    テストしていましたが、重要なファイルをコピーしていなかったとは気づきませんでした。
    (全てをコピーしておけばと多少悔やんでいます)

    今後こうしたトラブルが起きないよう、標準インストールされるものを呼び出します。
    ST-LINK_CLI.exeのインストール先は、空白も多数含まれています。
    "C:\Program Files\STMicroelectronics\STM32 ST-Link Utility\ST-Link Utility"
    ちょっと長すぎですが、メーカの考えですから仕方ありません。
    ProgramFiles=C:\Program Files
    という環境変数があるので、これを元にフォルダを決定する予定です。

    これは愚痴になりますが、↓のように表示されれば瞬時に対応できますので、
    Failure opening flash loader(stm32wLoader.bin)
    この経験を活かし、自分の書くコードでは配慮します。

問題解決(avrdudeの修正も完了)

  • senshu 2011-05-23 (月) 08:50:20
    ST-LINK_CLIによる書き込み動作を確認しました。原因は、ファイル不足でした。
    ST-LINK_CLIでは、短いコードなら書き込み&ベリファイが1秒程度で完了し、手動の
    操作も不要で便利です。STBeeやSTBee Miniでは、DFUWを利用することになりますが、
    書き込みに数秒間必要です。またスイッチ操作が必要なので、ちょっとだけ面倒です。
    armbootもDFUと同様ですが、BootLoaderのサイズが8kBと小さく、利用できるコードが
    増加します。また、デバッグに有用なメモリダンプ機能が利用できます。
    MAPLE_OK.png

    そこで、ST-LINK utilityを通常にインストールを行えば利用できるようにavrdudeを
    修正しました。MAPLE IDEに追加する項目はわずかとなり、導入は容易です。

    ■ avrdudeのソースと実行ファイル
    fileavrdude_fake.zip

    このavrdude.exeではBATファイルは利用せずに、直接以下の形式で実行ファイルを呼び
    出します。STLINK_CLIは、PATH設定に依らず、"Program Files"にインストールされた
    ものを直接利用します。
    protocol = -cDFUW (dfuw.exe %s.hex)
    protocol = -cST-LINK (ST-LINK_CLI.exe -c SWD -P %s.hex -Rst)
    protocol = -cARMBOOT_STBEE (armboot.exe -r %s.hex)

  • senshu 2011-05-23 (月) 09:59:26
    Keilなどの統合開発環境では、ST-LINKを活用したデバッグも可能なのですが、入門者
    には大がかりすぎる印象があります。また、stm32-VLD用のST-LINKモジュールは
    使用実績が少ないのか、特定(多数?)の版にて不具合が報告されています。
    つまり、無償で入手できる評価版では上手く動作しないかもしれません。

    Maple IDEでがデバッグ機能は限られますが、そうした方にも使ってもらえる手軽さは
    あります。

    なんとなく使い始めて、物足りなくなれば商用版の本格的な開発スールを利用するという
    二段階の学習が可能なのは利点と考えます。Keil社などの開発環境は、32kBまでとコード
    サイズが限られますが、小規模な学習には不足のない利用ができます。

    zoom

MAPLE IDEで開発開始

  • senshu 2011-05-24 (火) 19:44:53
    dfuw, ST-LINK_CLI, armbootの三種類の書き込みツールを利用して、書き込めることを
    確認しました。

    ST-LINK_CLIは専用の書き込み回路を利用するため、すべてのFLASH領域を利用でき、
    書き込みも高速です。

    dfuwとarmbootはブートローダー方式ですから類似の使用感ですが、armbootの方が
    利用者用のFLASH領域は多く、使い勝手に優れています。ただし、ブート用のコード
    は自前で書き込む必要があります。

    ようやくMAPLE IDEによる開発環境が整ったので、今後は応用プログラムの作成に取り
    組むことができます。

    Arduinoに倣い、応用事例を充実させたいと思います。本来は、Arduinoでは実現
    不可能な分野への応用が望まれます。

Maple IDEでSTbee用のコードを開発する

senshu (2011-05-17 (火) 08:36:29)

irukaさんのゲストブックに、xshigさんから
「Maple IDE改造(STBee,STBeeMini,STM32VLD)」というタイトルで紹介がありました。

avrdudeをラップしてSTBeeの書き込みを実現しており、導入手順もシンプルです。

irukaさんによる解決のヒント

私はavrdude-GUIの拡張を行っていますが、どちらも大いに参考になりました。


簡易インストーラと改良したuploader

  • senshu 2011-05-18 (水) 14:13:08
    BATファイルで導入ツールを作成しました。無いよりはマシ、というレベルですが
    xshigさん作成のフォルダに入れておけば、かなりの手間をカットできます。
    @echo off
    
    set MAPLE_BASE=C:\Programs\maple-ide-0.0.9
    
    echo %MAPLE_BASE%
    
    if exist %MAPLE_BASE%\nul (
      echo copy *.h, *.c *.ld
      copy /Y *.h %MAPLE_BASE%\hardware\leaflabs\cores\maple > NUL
      copy /Y *.c %MAPLE_BASE%\hardware\leaflabs\cores\maple > NUL
      copy /Y *.ld %MAPLE_BASE%\hardware\leaflabs\cores\maple\maple > NUL
    
      if not exist %MAPLE_BASE%\hardware\leaflabs\boards_org.txt (
        echo copy boards.txt
        copy %MAPLE_BASE%\hardware\leaflabs\boards.txt %MAPLE_BASE%\hardware\leaflabs\boards_org.txt > NUL
      )
    
      echo boards.txt
      copy /Y boards.txt %MAPLE_BASE%\hardware\leaflabs\boards.txt > NUL
    
      echo dfu_elf.bat
      copy /Y dfu_elf.bat %MAPLE_BASE% > NUL
    
      echo ST-LINK_elf.bat
      copy /Y ST-LINK_elf.bat %MAPLE_BASE% > NUL
    
      if not exist %MAPLE_BASE%\hardware\tools\avr\bin\nul (
        mkdir %MAPLE_BASE%\hardware\tools\avr\bin
        copy /Y avrdude.exe %MAPLE_BASE%\hardware\tools\avr\bin > NUL
      ) else (
        echo Exist avrdude.exe
      )
    
    ) else (
      echo MAPLE IDE not exists.
    )

    avrdudeのラッパも以下のように修正しました。引数なしで起動すると、サポートする
    プロトコルを表示します。独自にarmbootサポートを追加しました。
    >avrdude <Enter>
    protocol = -cdfuw (dfu_elf %s)
    protocol = -cST-LINK (ST-LINK_elf %s)
    protocol = -cARMBOOT (armboot -r -s8003000 %s)
    ARMBOOTを利用する場合、2000番地以降を利用することができるので、コード領域を
    4kBほど拡大できます。ARMマイコンでも4kBは貴重ですが、ldスクリプトやboards.txt
    を修正する必要があります。ちょっと面倒ですね。

    ■ 現行のavrdudeラッパの問題点
    Maple IDEにてシフトキーを押下してUploadを行った場合、以下のように引数にズレが
    生じます。

    現行のavrdudeラッパは、argv[5]=プロトコル、argv[9]=ファイル名と仮定しているため、
    シフトキーを押下した場合には機能しませんので、修正が必要です。

    ・シフトキーを押さない場合(OK)
    0:|C:\Programs\maple-ide-0.0.9\hardware\tools\avr\bin\avrdude|
    1:|-CC:\Programs\maple-ide-0.0.9\hardware/tools/avr/etc/avrdude.conf|
    2:|-q|
    3:|-q|
    4:|-pSTM32F103CB|
    5:|-cdruw|
    6:|-P\\.\COM1|
    7:|-b57600|
    8:|-D|
    9:|-Uflash:w:D:\DOCUME~1\senshu\...\ASCIITableVCP.cpp.hex:i|

    ・シフトキーを押下した場合(NG)
     0:|C:\Programs\maple-ide-0.0.9\hardware\tools\avr\bin\avrdude|
     1:|-CC:\Programs\maple-ide-0.0.9\hardware/tools/avr/etc/avrdude.conf|
     2:|-v|
     3:|-v|
     4:|-v|
     5:|-v|
     6:|-pSTM32F103CB|
     7:|-carmboot|
     8:|-P\\.\COM1|
     9:|-b57600|
    10:|-D|
    11:|-Uflash:w:D:\DOCUME~1\senshu\...\ButtonSTBeeMini2.cpp.hex:i|

avrdudeラッパの検討事項

  • senshu 2011-05-19 (木) 16:40:15
    2つのBATファイルは、objcopyコマンドでHEXファイルを作成していますが、
    この作業は不要に思えます。
    HEXファイルは、objcopyを呼びだす前に生成されているように見えます。
    Maple IDEで生成されるファイルを調べてみました。avrdudeを指定すると、HEXファイル
    を対象にしたコマンドが発行されます。しかし、実際にはHEXファイルは生成されず、
    elfとbinファイルを生成します。多くの書き込みツールはHEXファイルが必要です。
    dfuw, ST-LINK_CLI, armboot は、すべてHEXファイルが対象です。
    ・dfu_elf.bat
    @echo off
    del tmp.hex
    arm-none-eabi-objcopy -O ihex  %1 tmp.hex
    c:\cygwin\bin\dfuw tmp.hex

    ・ST-LINK_elf.bat
    @echo off
    del tmp.hex
    arm-none-eabi-objcopy -O ihex  %1 tmp.hex
    c:\ARM_tools\ST-LINK_Utility\ST-LINK_CLI -c SWD -P tmp.hex
    c:\ARM_tools\ST-LINK_Utility\ST-LINK_CLI -c SWD -Rst

    なお、ST-LINK_elfの二行のコマンドは
    c:\ARM_tools\ST-LINK_Utility\ST-LINK_CLI -c SWD -P tmp.hex -Rst
    のように、一行で書けるようです。参考リンク(英語)

    ■ Maple IDEでコンパイルした結果
    ※ ELFやbinを対象にしないツールでは、elf → hexの変換が必要です。
    2011/05/20  13:10            11,232 ASCIITableVCP.cpp.bin
    2011/05/20  13:10             3,755 ASCIITableVCP.cpp
    2011/05/20  13:10           186,329 ASCIITableVCP.cpp.elf
    そこで、elf to hexの変換機能を avrdude(fake版)に追加しました。
    BATファイルに組込むよりも、柔軟にエラー処理ができます。

UBW ver 1.48

senshu (2011-05-10 (火) 19:55:14)

先ほど気づいたのですが、PICマイコンを利用したUBWがバージョンアップしています。

私の手元では、UBW ver1.43で止まっていますが、本家では ver 1.48まで
発展していました。

追いかける元気がありませんが、興味のある方は挑戦してみてください。

http://www.schmalzhaus.com/UBW/


STM32用のUploadツール更新(6/2)

senshu (2011-05-10 (火) 08:20:52)

STM32のブートローダに対応した stm32flashを更新しました。

ブートローダの書き込みや全Flashを使いたい場合は便利に使えます。詳しくは
stm32flash(USART用のhost側のツール)」 をご覧ください。

filestm32flash-win-03.zip 2011年6月2日更新

以下のように、-uオプションが追加されました。使い方は不明ですが、興味深い
オプションに思えます。

Usage: stm32flash.exe [-bvngfhc] [-[rw] filename] COM1
       -b rate         Baud rate (default 115200)
       -r filename     Read flash to file
       -w filename     Write flash to file
       -u              Disable the flash write-protection (追加)
       -e n            Only erase n pages before writing the flash
       -v              Verify writes
       -n count        Retry failed writes up to count times (default 10)
       -g address      Start execution at specified address (0 = flash start)
       -f              Force binary parser
       -h              Show this help
       -c              Resume the connection (don't send initial INIT)
                       *Baud rate must be kept the same as the first init*
                       This is useful if the reset fails

  • senshu 2011-06-05 (日) 14:25:53
    よく見ると、Helpメッセージの内容のオプションと説明に不整合があります。

    修正が必要かもしれません。

GWに突入

senshu (2011-05-04 (水) 07:13:23)

忙しくしていたら、もう5月です。震災から2か月が経過しようとしています。

連日、余震が起きていますが、揺れの頻度は徐々に低下してきていると思います。

でも、毎日、揺れてもいないのに地震かな?と感じることもあり、心の安定はまだ先の話です。

【閑話休題】

「マイコンは産業界の米」と言われて久しいのですが、ルネサス社の生産が
できないことで、そのことを実感しています。早期に回復し、よりロバスト
な体制が整うことを願っています。


  • Shuji009? 2011-05-04 (水) 10:21:52

    揺れてもいないのに地震かな?
    阪神・淡路大震災を前の会社の9階で、体験して以来、余震が収まった
    数ヶ月後〜数年間に・・・・今でも?・・・・渡って、そう思うこと
    あります。
    悪い意味で体に染みついた、記憶という感じです。