今回はuLispのデバッグ機能。この機能はエディタ同様uLisp処理系そのものに組み込まれており、外部プログラムなど必要とはしません。ただし機能を顕現させるには事前の準備が必要です。まずはユーザープログラムの書き換え不要な trace が第1チョイスかと。関数内部の奥深くに探りを入れる場合は breakすかね。
“Lispと一緒(43) ラズパイPico2でもuLisp、breakとtrace、デバッグ” の続きを読む
Lispと一緒(42) ラズパイPico2でもuLisp、SHA256ハードを試用
別シリーズの過去回にてラズパイPico2、RP2350の周辺回路 SHR256計算機(アクセラレータ?)を調べました。メンドいハッシュの計算を自主的に行ってくれる優れものです。調べただけで実機動作がまだだったので、今回uLispから突いて計算できることを確認。まあ動作確認用のサンプルコードでしかないすけど。 “Lispと一緒(42) ラズパイPico2でもuLisp、SHA256ハードを試用” の続きを読む
Lispと一緒(41) ラズパイPico2でもuLisp、uLisp to C 変換
Lispと一緒(40) ラズパイPico2でもuLisp、uLispのエディタ
Lispと一緒(39) ラズパイPico2でもuLisp、uLispのコンパイラ
前回はuLispのアセンブラを試用。Arm Thumb命令のネイティブ・コードを生成してくれるアセンブラです。さて今回はこのアセンブラの上に乗る「Lispコンパイラ」を使ってみます。なんとuLisp関数(使える関数はサブセットだけれども)をネイティブコードにコンパイルしてくれます。実行速度は超高速化、当然。 “Lispと一緒(39) ラズパイPico2でもuLisp、uLispのコンパイラ” の続きを読む
Lispと一緒(38) ラズパイPico2でもuLisp、uLispのアセンブラ
前々回あたり、uLispは周辺回路レジスタ(実際にはメモリも可)へのアクセスを許してくれると活用?してみました。しかしそれだけではありませぬ。uLispはアセンブラをも備えており、uLisp関数をアセンブリ言語命令で記述して呼び出すことも可能です。事実上、何でもアリ?強力すぎる?アセンブラ書きのお楽しみが増えた?
Lispと一緒(37) uLisp用、Teraterm Proマクロでらくちん?
「uLisp公式」ではuLispをビルドするのに使ったArduino IDEのシリアル・モニタを開発環境に使うことを推奨しているみたいです。uLispに欠けている行編集機能を補える上に何となれば処理系の再生成も可能。しかし当方Teraterm Proで作業中。lispのソースを編集、アップロードするのに便利なので。
“Lispと一緒(37) uLisp用、Teraterm Proマクロでらくちん?” の続きを読む
Lispと一緒(36) ラズパイPico2でもuLisp、TRNG、真性乱数の生成
Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はregister関数を練習。メモリマップされた周辺回路のレジスタども(メモリでも)を読み書きできる関数でした。これがあれば何でもできそ~。今回はラズパイPico2(RP2350)特有の周辺、TRNGを使って真性乱数をゲットだぜ。
Lispと一緒(35) ラズパイPico2でもuLisp、core識別情報、読み取り
Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。ここ数回でSPIやらI2Cやらの先に接続された「メモリ」を読み書き。しかしuLispは恐ろしいことにCPUコアから見えるメモリ空間を直接読み書きする方法も提供してくれてます。関数名からするとペリフェラルの制御レジスタへのアクセス用です。 “Lispと一緒(35) ラズパイPico2でもuLisp、core識別情報、読み取り” の続きを読む
Lispと一緒(34) ラズパイPico2でもuLisp、I2Cメモリ読み書き
Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はI2CバスにSCANをかけ、接続したメモリが接続したつもりのアドレスに「居る」ことを確認できました。今回は実際にメモリにライトしてリードしてみます。リードのところの手順にちょっとテク?いるけれども、どおってことない。ホントか? “Lispと一緒(34) ラズパイPico2でもuLisp、I2Cメモリ読み書き” の続きを読む
Lispと一緒(33) ラズパイPico2でもuLisp、I2Cポートスキャン
Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はSPIにメモリを接続しました。今回はI2Cバスにメモリを接続です。しかし読み書きの前にI2Cポート・スキャンからです。まあ、uLispの例題そのまま走らせるだけなんだけれども。一応、実機波形を確認。I2Cバス動いてますなあ。 “Lispと一緒(33) ラズパイPico2でもuLisp、I2Cポートスキャン” の続きを読む
Lispと一緒(32) ラズパイPico2でもuLisp、SPIメモリ読み書き
Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はSPIの出力波形を堪能。しかし波形を眺めているだけではSPIしたことになりませぬ。今回はSPI接続のSRAM、23LC512をターゲットにSPI経由での書き込みと読み出しを実験。uLispのコードもCのコードも変わらんぜよ。
Lispと一緒(31) ラズパイPico2でもuLisp、SPI出力
Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。先ごろからハードウエア制御に入いっとります。前回はPWM出力(関数名的にはanalogwrite)、今回はSPI出力を練習してみます。端子的にはキメウチだけれども、それなりに制御できるのでないかと。実機で波形を味わってみるの回です。
“Lispと一緒(31) ラズパイPico2でもuLisp、SPI出力” の続きを読む
Lispと一緒(30) ラズパイPico2でもuLisp、PWM出力
Common Lispの系譜を継ぐuLispをラズパイPico2マイコン上で練習中。前回はADコンバータ使って電圧を読み取るアナログ入力。今回は analogwrite。しかしPico2にはDAコンバータ不在。Arduino世界の通例によりPWM出力です。使えるAPIは2つだけ。それ以上やりたければ自分で制御せよと?