HAL_UARTEx_ReceiveToIdle_DMA を使うときは、必ず FIFO をEnable すること。できれば 1byte FIFO にたまったところで割り込みがかかるように。
さもないと、ごくまれに割り込みハンドラの無限ループに入り込んでハングアップする。
HAL_UARTEx_ReceiveToIdle_DMA を使うときは、必ず FIFO をEnable すること。できれば 1byte FIFO にたまったところで割り込みがかかるように。
さもないと、ごくまれに割り込みハンドラの無限ループに入り込んでハングアップする。
仕事のつながりの古い知り合いから仕事をもらったのだが、納品が github 経由だったので、自分の github アカウントに private リポジトリを作った。そこにアクセスする必要が出たのだが、passwd アクセスはすでに廃止。いつもは SSH キーを使っているのだが、今回は貸与された機材で開発しているので、そこに秘密鍵をコピーするのマズイ(機材を返却するときに消し忘れる可能性が高い)。
ということで今回は Personal Access Token を使ってみた。参考にしたのはこちらのページ。 基本的には書いてある通りに作業して動いた。うまくいかなかったのは、作業ディレクトリを間違ったのとリモートリポジトリの名前を間違ったことだけ(main - master)。
以前、客先の github にアクセスするのに非常に手間取った(2日人ぐらいかかった)ことを思うと、だいぶ進歩したかも。
海外旅行にいくので、行った先でも日本と同じようにサイトが見られれるように VPN を作った。
・kagoya を使ったのは安かったから。20円/日,550円/日
・softether を使ったのは、インストール方法が公開されていたから
基本的には↑の手順でいけるが、他にサーバーへのログイン方法、soft ether への新規ユーザー作成、Android 12 以降の場合は OpneVPNが必要、android の VPN 設定はgoogle 検索で出てきた AI の情報で解決。SoftEther VPN クライアント接続とSE-VPN サーバー管理 (ツール)が別なことに気付かづ少々時間を食った。
去年もやったのだけど、すっかり忘れていて2時間以上かかってしまったのでメモを残す。
u-center2 は u-center とだいぶ UI が変ってしまって、いろいろと大変。config 設定をファイルに export する方法をメモ。
・Device Configuration を開く
・Quick configuration -> Constellation configuration で設定
・Advanced configuration を選択
・真ん中上の立て三つボタンをクリック->Capture all configuration layer values をクリック
・真ん中上の立て三つボタンをクリック->Create configuration list をクリック
・全部修正したら、下の方にある Save as... で名前を付けて保存
・左側の Saved configuraitons に名前が出てきたら、名前の上にマウスポインタ―を持ってきて、出てきた縦三つボタンをクリック、Export を選択してファイルに出力
※参考
Delphi + TComPortDrv で作った COM ポートにアクセスするアプリ、CH340 のポートを開こうとするとなぜかエラーになる。ポート番号を変えたりドライバーをチェックしたりいろいろやったがダメ。
最後にデバイスマネージャーからプロパティをひらいて[Port Settings]->[Advanced...]と進んで 'Enabling the Serial Port Enmuarator' にチェックを入れ[OK]で更新したらDelphi + TComPortDrv で作ったあぷりで CH340 のポートにアクセスできるようになった。
いろいろやってはみるものだ。
RS232 の automatic power down で嵌った。
とあるシステムで RS232 を使って接続している部分があった。装置 - RS232 - アダプタ - PC という構成。
ここでアダプタを違うものに交換した。動かない。接続を間違ったか、Windows のドライバーの問題か?といろいろ調べていくと、新しいアダプタを使ったときに RS232 の部分に電圧がかかっていない。テスターの針が振れない。古いアダプタに戻すと電圧が出る。
いろいろ悩んで装置側の RS232 に automatic power down の機能があることを思い出す。 新しいアダプタ単体で RS232 端子の電圧を計っても 0V。これは装置とアダプタ両方に automatic power down の機能があり、どちらも目を覚ませずにいるのではないかと考え、装置側の automatic power down を off に(PC側には off にする設定が無かった)。
無事動作。
装置側は MAX3221、アダプタは CH340+Windows11Pro24H2+DriverVersion3.9。
Delphi から TComPortDriver の Demo を操作していて、OUTGOING TEXT からシリアルポートに送出しようとしたら、以下のダイアログが出てきた。受信はできていたので、設定自体は間違っていないはずなのだが...、と調べて分かったこと。
ちなみに Demo アプリの Settings Dialog を開いて Device Control タブの Device check を No に設定しても同じ。
Windows で、あるディレクトリの下にあるディレクトリを圧縮してそのディレクトリに置き、圧縮したディレクトリを削除するという作業を大量に行っていた。
大量に行うのが面倒くさいのでバッチファイルを作ろうと思ったが、今更 Windows のバッチファイルも無かろう。得意な言語は C/C++ なのだがコンパイル環境を構築するのが面倒くさい。次に得意なのは PHP だが、あまり好きな言語ではないし新たに環境構築が必要。その次に慣れた言語は python だが、それでは面白くない。ということで、数ヶ月前に転職目指して環境を入れて勉強した Ruby にした。
プログラム自体はごく単純なものなのだが、いろいろハマった。
ここをクリアして動くようになってから試していると、アーカイブファイルのファイル名がすこしおかしい。圧縮するディレクトリ名をアーカイブのファイル名にしたのだが "xxx.Vol.09" のような名前にすると、最後の "." 以降の数字がファイル名に反映されない。GUI からだと問題はない。Lhaz のバグだと思うのだが、使う側からは対応しようが無い。
あきらめて別なツールを使おうと探していたら、Windows System の圧縮機能の使い方が分かった。power shell から Compress-Archive を呼び出すということがわかった。power shell から Ruby を起動して system() をつかったら、power shell のコマンドを呼び出せるのかと思ったらそうはいかず、sysytem("powershell <power shell cmd>")で呼び出す形式だった。
これで動くと思ったら、sysytem("powershell <power shell cmd>")の<power shell cmd>の中の '"'(ダブルクォーテーション)が消える。具体的には、ディレクトリ名に空白が入っているので、フルパス全体を '"' で囲んだのに、エラーメッセージを見ると '"' が消えていて、ディレクトリ名の空白がパラメータの区切りとみなされエラーとなっていた。system("")で Lhaz を呼び出した時は '"' は消えなかったのだが...。この問題は '"' を "'"(シングルクオーテーションに変えることで解決。
まぁ、ファイル名を扱ったり、OS のコマンドを呼び出すプログラムは一筋縄では動きませんわ。
Ruby on Rails の勉強をしようとして、ネットの情報を見ていたら、開発環境が AWS Cloud9 だった。そのサイトの通りに作業していくと、default でいけるはずの VPC がなく作業が止まる。とりあえず default で VPC を作っても上手くいかない。
こちらのサイトで勉強してから再挑戦。VPC を作った後にサブネットとルートテーブルを作成。CIDR をきちんと設定しても上手くいかない。エラーメッセージの
"Cloud9 could not connect to the EC2 instance. Please check your VPC configuration and network settings to troubleshoot the issue"
を google さまに検索してもらうと、「パブリック IPv4 アドレスを自動割り当てがいいえ」になっているとだめ、との情報が。ここで Cloud9 IDEを開こうとすると、いままで「接続待ち」だった表示が「立ち上がり待ち」に変わったのだが結局失敗。
改めて見直すと、ルートテーブルにインターネットゲートウェイがない。どこかで必要なルートは自動的に追加されるとあったのだが、手動で追加する必要があるのか?手動で追加しようとするとインターネットゲートウェイが見つからないと出てくる。ふと、VPC設定ページの左メニューを見ていると「インターネットゲートウェイ」の文字が。新しくインターネットゲートウェイを作り、 VPC に紐づけてルートテーブルに 0.0.0.0/0 -> igw-xxxx のルートを追加。その上で再度 Cloud9 を作成すると、今度はあっさり成功。
結局
で成功したようだ。
AWS を最後に触ったのは5-6年前だと思うけど、その時は VPC なんて触らなくても良かった気がするなぁ...。
SNS で、AWS の資格の話題がよく出る理由が分かった気がする ><
追記
思うところあって Ruby を勉強しているのだが、引っかかりそうなところのメモ。検索でき無さそうなのを多めに。
pxxは、はじめてのRubyで説明されているページ
ソフト開発に関するメモ