x86命令には「BCD補正命令」なる一族あり、その中でもパックドBCD数を扱うDAA命令は御先祖の8ビット機(8080/8085)でも存在した伝統の命令です。しかしx86ではアンパックドBCD数を扱うための頭文字にAを頂く命令どもが追加されております。強力?でも今となっては盲腸みたいなもん?どうなん?
Lispと一緒(9) ラズパイPico2でもuLisp、「ピー」と問えば真偽が返る、その2
Common Lispの系譜を継ぐ、マイコン上のuLispをラズパイPico2上で練習中です。前回は末尾に「p」がつく問いかけ(述語)どものいくつかを練習。今回はその続きです。「ピー」一族ではないけれども、今回はパソコン上のCommon LispとuLispの微妙な違いに遭遇。Lisp素人老人には是非もなし。
Pico三昧(33) ラズパイPico2:RP2350、Pico:RP2040、XIP比較
前回比較したのは主記憶SRAMでした。今回は命令コードや固定データがおかれている筈のFlashです。ただしラズパイPico/Pico2の場合、FlashはQSPI接続されているので、そのままでは主記憶にはなりませぬ。その出来ないところを埋めてさもインプレースで実行できるように見せかけてくれるハードウエアがXIPです。 “Pico三昧(33) ラズパイPico2:RP2350、Pico:RP2040、XIP比較” の続きを読む
Lispと一緒(8) ラズパイPico2でもuLisp、「ピー」と問えば真偽が返る
Common Lispの系譜を継ぐ、マイコン上のuLispをラズパイPico2上で練習中。いつの御代からは知らねど、古来、問いかけ(述語、predicate)には末尾に p をつけるのだそうな。uLispとは言えども「なんちゃらピー」なる関数は大量に存在します。今回はその主なものを触ってみる初回ということで。
Pico三昧(32) ラズパイPico2:RP2350、Pico:RP2040、SRAM比較
今回比較するのは主記憶SRAM。データでもコードでも置ける普通のSRAMです。PicoのRP2040では合計264KB、Pico2のRP2350では合計524KB。でも違うのは容量だけではないみたい。バスとの接続、パワードメイン、セキュリティといろいろ差異ありっと。でも気にしなければ通り過ぎることも可?ホントか?
“Pico三昧(32) ラズパイPico2:RP2350、Pico:RP2040、SRAM比較” の続きを読む
Pico三昧(31) ラズパイPico2:RP2350、Pico:RP2040、DMAC
前回はPico2とPicoの内部バスを比較してみました。似ているけれどもコマケー違いは多々あり。概ねPico2の方が強化されとります。今回拝見するのはDMAです。これまたよく似ているけれどもPico2の方が強化されている?でもね、データシート的には「左遷」されている感じがしなくもないです。どうしたDMA。
Lispと一緒(7) ラズパイPico2でもuLisp、世界はCONSとATOMで出来ている
Common Lispの系譜を継ぐ、マイコン上のuLispをラズパイPico2上で練習中。どうも「世界はCONSとATOMで出来ている」らしいです。今回はデータの構造体であるCONSを作り出すCONS関数と、CONSなのかATOMなのかを判断するATOM関数を練習してみます。根幹ゆえCommon Lispと当然の一致。
Pico三昧(30) ラズパイPico2:RP2350、Pico:RP2040、内部バス比較
前回はPico2のBoot ROM/RAMを調べました。今回はRP2350、RP2040に「似通った形」で実装されている内部バス。遠くからみると同じに見えるけれども、近寄ってみると細かく違う部分。ただし、ユーザーがその差を感じるのは処理スループットくらいか。気にしなければ知らんでも済む?いいのかそんなことで?
ぐだぐだ低レベルプログラミング(185)x86(16bit)、シフト、ローテイト練習(86)
前回はx86命令(16bit)のうち「8086レベル」のシフト、ローテイト命令の動作を復習。コマケーところがメンドイものどもでした。前回は実機(実際はQEMUのエミュレーションだけれども)での動作確認をしなかったので、今回はデバッガで動かしながらの動作確認です。メンドイのでサラっと流していくぜ。いいのか?
Lispと一緒(6) ラズパイPico2でもuLisp、EQとEQUALだけ?
Common Lispの系譜を継ぐマイコン上で走るuLispをラズパイ Pico2 上で練習中。資源の限られたマイコンゆえCommon Lispと同じとはいきませぬ。前回のLispといったら CAR と CDR だろ~という浅はかな回では「3段重ね」まででした。今回EQとEQUAL見ていきます。EQLとかねえの?
Lispと一緒(5) ラズパイPico2でもuLisp、まずはCARとCDR一族
前回は吉例Lチカをやってみました。今回から uLisp の備える関数どもを端から一通り触っていきたいと思います。といっても御本家COMMON LISPのような膨大な関数があるわけではないです。約180個ほど。しかしその中のディスプレイ用関数群はディスプレイ接続しなければ不要。実際には百数十くらいか?
“Lispと一緒(5) ラズパイPico2でもuLisp、まずはCARとCDR一族” の続きを読む
Pico三昧(29) ラズパイPico2:RP2350、Boot ROMとBoot RAM
前回のOTPはPico2で追加されたメモリでした。一部はユーザ使用も可能かと。一方、今回眺めてみるROM(ブートROM)はPicoの中の人がプログラムしたマスクROMみたいです。ユーザが書き変えることは出来ません。しかしその機能に毎度お世話になっておる、と。そしてPico2では専用RAMが追加されているみたい。 “Pico三昧(29) ラズパイPico2:RP2350、Boot ROMとBoot RAM” の続きを読む
Lispと一緒(4) ラズパイPico2でもuLisp、吉例Lチカ
ラズパイPico2をターゲットに、別シリーズにて 「C/C++ SDK」「Arduino」「MicroPython」の3種の開発環境にて吉例Lチカ。Pico2でもソフトが作れる雰囲気。しかし、心の底で引っかかっていたものがあります。組み込み用のLisp処理系、uLispです。今回は処理系インストールして吉例Lチカまで。
“Lispと一緒(4) ラズパイPico2でもuLisp、吉例Lチカ” の続きを読む
Pico三昧(28) ラズパイPico2:RP2350、OTP、ワンタイムプログラミング記憶
ラズパイPico2搭載のRP2350のスペックをPicoのRP2040と比較してます。前回RP2350の「デュアルコアがまたデュアル」な制御でOTPというものが登場しました。ワンタイム・プログラミング・ストレージ。これはRP2040には存在せず、RP2350で登場したものです。今回はOTPについてざっと調べてみます。