検索条件
タグで絞り込み
電子工作::Altium Designer(1)
電子工作::Arduino(10)
電子工作::FlashAir(1)
電子工作::LIP(2)
電子工作::MBEライブラリ(1)
電子工作::OLED(96x64)(3)
電子工作::RaspberryPi(2)
電子工作::TM080VG-22L01(5)
電子工作::WioLTE(1)
電子工作::ジャンクLCD(5)
電子工作::雑記(22)
TCA0.SINGLE.INTCTRL = 0b0 TCA0.SINGLE.CTRLA = 0b1011 TCA0.SINGLE.CTRLB = 0b11 TCA0.SINGLE.CTRLC = 0b0 TCA0.SINGLE.CTRLD = 0b0 TCA0.SINGLE.CTRLECLR = 0b0 TCA0.SINGLE.CTRLESET = 0b0 TCA0.SINGLE.CTRLFCLR = 0b0 TCA0.SINGLE.CTRLFSET = 0b0 TCA0.SINGLE.EVCTRL = 0b0 TCA0.SINGLE.INTCTRL = 0b0 TCA0.SINGLE.PER = 255 TCA0.SINGLE.CMP0 = 128 TCA0.SINGLE.CMP1 = 128 TCA0.SINGLE.CMP2 = 128TCA0.SINGLE.CTRLCなのですが、起動時は0b0だがtone()実行中は0b111になっています。
nRF5_SDK_17.1.0_ddde560\components\serializationというのがあって、どうやらMCU側はこのライブラリを使って「よろしく動かしましょう。通信プロトコルやパケットフォーマットは気にしなくてよいです。」ということが言いたそうな空気を感じました。
*** sd_ble_version_get --> 03 00 00 65 00 <-- 06 00 01 65 10 00 00 00
\nRF5_SDK_17.1.0_ddde560\components\serialization\common\ser_dbg_sd_str.cの中にありました。どうやらこれが一覧っぽいです。
S132 v17.1.0 static const char * sd_functions[] = { /* 0x60 offset */ "SD_BLE_ENABLE", /*0x60*/ "SD_BLE_EVT_GET", /*0x61*/ "SD_BLE_UUID_VS_ADD", /*0x62*/ "SD_BLE_UUID_DECODE", /*0x63*/ "SD_BLE_UUID_ENCODE", /*0x64*/ "SD_BLE_VERSION_GET", /*0x65*/ "SD_BLE_USER_MEM_REPLY", /*0x66*/ "SD_BLE_OPT_SET", /*0x67*/ "SD_BLE_OPT_GET", /*0x68*/ "SD_BLE_CFG_SET", /*0x69*/ "SD_BLE_UUID_VS_REMOVE", /*0x6A*/ "SD_UNKNOWN", /*0x6B*/ ...抜粋。
"C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr/bin/avr-size" -A "R:\\/test.ino.elf" 最大32256バイトのフラッシュメモリのうち、スケッチが20776バイト(64%)を使っています。 最大2048バイトのRAMのうち、グローバル変数が896バイト(43%)を使っていて、ローカル変数で1152バイト使うことができます。そこで、VSCodeのtask.jsonを書いて同等の情報出力をファイルに出すようにした。手順は以下の通り。
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "メモリ状況", "type": "shell", "presentation": {"echo": true}, "command": "C:\\Program Files (x86)\\Arduino\\hardware\\tools\\avr\\bin\\avr-size.exe", "args": [">", "memory.txt", "-C", "--mcu=atmega328p", "R:\\test.ino.elf"] } ] }なお、ドライブレターやパス、ターゲットelfファイル名などすべてハードコーディングしているので適宜変更が必要。まずは動くことを重視した。task.jsonを保存したらメニューからターミナル->タスクの実行を選択すると「メモリ状況」という項目が増えているのでそれを選択して「タスクの出力をスキャンせずに続行」で実行する。