ひでみのアイデア帳 https://sweetcafe.jp/ https://sweetcafe.jp/ https://sweetcafe.jp/favicon.ico AQUAXIS Fri, 20 Sep 2019 08:35:38 +0900 ja-JP Fri, 20 Sep 2019 08:35:38 +0900 Blog gettyのしわざか? https://sweetcafe.jp/?*20190920-083538 gettyのしわざか?

Ultar96でlinux-xlnxを使うとUARTコンソールからログインプロンプトから入力ができなくなり、mainlineのカーネルを使うとログインプロンプトから入力できてログインできる。

RootFSとDeviceTreeは同じものを使用しているので下回りは同じはず。

linux-xlnxの場合、コンソールにsyslogのメッセージが表示されるのでコンソールの出力は生きている。

入力だけが使えない状態になっているようだ。

Kernelだけを入れ替えてこの症状なのでコンソール入力が無効になったか、切り替えられてしまったかだろうと思うんだけど、Kernelを入れ替えただけでコンソールの入力だけがダメになるのは気持ち悪い。

ちなみにDisplayPortにもログインプロンプトが出ているのでUSBキーボードを接続してログインすると通常通りログインできるので使用できないことはない。

WiFiも設定すれば通信できるのでssh経由でのログインも可能なのだ。

開発に支障がでているわけではないがUARTコンソールからもログインできるようにしておきたい。

]]>
Fri, 20 Sep 2019 08:35:38 +0900 https://sweetcafe.jp/2019-09-20 08:35:38
githubのリポジトリ整理 https://sweetcafe.jp/?*20190919-082655 githubのリポジトリ整理

gthubのリポジトリはPrivateも含めて、50個ぐらいリポジトリがあるのでもう使っていないリポジトリなどを削除したり、使用しているツールのバージョンアップなどで更新したいリポジトリのメンテナンスをしたりして整理しました。

gemac

GigaEthernetのIPオフロードエンジン、ICMP、ARP、UDP/IPなどの制御が入っているFPGAリポジトリです。Xilinx ISEで動作確認をしていたプロジェクトをVivadoへ移行しました。

debug_uart

ちょっとしたコンソール処理が可能になっているUART回路のリポジトリです。技術書典7の新刊に向けて追加しました。

meta-ultra96

AvnetのZynqMPSoCの評価ボードUltra96V2向けのYoctoレシピです。「FPGAの内容が薄い本2」の内容からアップデートを行っています。詳細については「FPGAの内容が薄い本2」のアップデート版を作成する予定です。

xilteraリポジトリ

ZynqとSoC FPGAが登場したときに両方で使用できるYoctoのLinuxディストリビューションの構築手順やコンフィグファイルなどをアップしていましたが情報が古すぎるので削除しました。

MicroBlazeMCSリポジトリ

RISC-Vも登場して、MicroBlazeの必要性はないので削除しました。

その他のリポジトリ

その他にも細かいリポジトリで使用していないものは削除しました。

ざっくり整理して、50個から30個に減りました。

]]>
Thu, 19 Sep 2019 08:26:55 +0900 https://sweetcafe.jp/2019-09-19 08:26:55
技術書典7に参加します https://sweetcafe.jp/?*20190918-083224 技術書典7に参加します

ずいぶんとブログを書いていない気がする。

9/22(日)の技術書典7に参加します。

スペース番号はく57Dで次の4冊を頒布します。

  • 「FPGAの内容が薄い本2」
  • 「FPGAの内容が薄い本3」
  • 「Markdown組版」
  • 「完全に理解した気になれるFPGA入門」

今回の新刊は「完全に理解した気になれるFPGA入門」でARTYでLチカする本です。

Vivadoのツールの使い方やVerilog HDLを網羅するのではなく最小限に使ってみてLチカさせたり、UARTで通信を動かすことを前提の内容です。

また、全ての頒布物にダウンロード権が付いています。

今までの頒布では説明していないのですが今まで購入してくださった方も一番、最後のページを確認してください。

ダウンロード用のシリアルが記載されたシートが入っています。

ぜひ、ダウンロードしてみてください。

なお、ダウンロード版は今後、アップデートを検討しています。

twitterのみの告知になりますが中古FPGA評価ボードを会場にてお譲りします。

]]>
Wed, 18 Sep 2019 08:32:24 +0900 https://sweetcafe.jp/2019-09-18 08:32:24
RISC-V Debug https://sweetcafe.jp/?*20190824-220118 RISC-V Debug

RISC-VのDebug部分を作っています。

仕様書は「RISC-V External Debug Support」ですね。

Version 0.13.2が現在のバージョンです。

RISC-Vのデバッグ環境は下図のようにRISC-VにDebug Modile(DM)を用意して、OpenOCDから接続することでデバッグを行っていきます。

デバッグ回路は難しくなく、JTAG-TAPを組んでしまえばあとはOpenOCDが制御してくれます。

JTAG部分はDTMに含まれます。

あとはDMがデバッグのコントローラになって、RISC-Vのコアを制御します。

ホスト側から実行するとこんな感じにログが見えます。

$ openocd -d -f riscv2.cfg 
Open On-Chip Debugger 0.10.0+dev-00626-g7eaf60f1b (2019-08-24-19:46)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.org/doc/doxygen/bugs.html
User : 13 3 command.c:544 command_print(): debug_level: 3
Debug: 14 3 options.c:184 add_default_dirs(): bindir=/usr/local/bin
Debug: 15 3 options.c:185 add_default_dirs(): pkgdatadir=/usr/local/share/openocd
Debug: 16 3 options.c:186 add_default_dirs(): exepath=/usr/local/bin
Debug: 17 3 options.c:187 add_default_dirs(): bin2data=../share/openocd
Debug: 18 3 configuration.c:42 add_script_search_dir(): adding /home/hidemi/.openocd
Debug: 19 3 configuration.c:42 add_script_search_dir(): adding /usr/local/bin/../share/openocd/site
Debug: 20 3 configuration.c:42 add_script_search_dir(): adding /usr/local/bin/../share/openocd/scripts
Debug: 21 3 configuration.c:97 find_file(): found riscv2.cfg
Debug: 22 3 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_echo RISC-V JTAG access interface
Debug: 23 3 command.c:143 script_debug(): command - echo ocd_echo RISC-V JTAG access interface
User : 25 3 command.c:790 jim_echo(): RISC-V JTAG access interface
Debug: 26 3 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_gdb_port 3333
Debug: 27 3 command.c:143 script_debug(): command - gdb_port ocd_gdb_port 3333
Debug: 29 3 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_interface ft232r
Debug: 30 3 command.c:143 script_debug(): command - interface ocd_interface ft232r
Debug: 32 3 command.c:364 register_command_handler(): registering 'ocd_ft232r_serial_desc'...
Debug: 33 3 command.c:364 register_command_handler(): registering 'ocd_ft232r_vid_pid'...
Debug: 34 3 command.c:364 register_command_handler(): registering 'ocd_ft232r_jtag_nums'...
Debug: 35 3 command.c:364 register_command_handler(): registering 'ocd_ft232r_tck_num'...
Debug: 36 3 command.c:364 register_command_handler(): registering 'ocd_ft232r_tms_num'...
Debug: 37 3 command.c:364 register_command_handler(): registering 'ocd_ft232r_tdo_num'...
Debug: 38 3 command.c:364 register_command_handler(): registering 'ocd_ft232r_tdi_num'...
Debug: 39 3 command.c:364 register_command_handler(): registering 'ocd_ft232r_srst_num'...
Debug: 40 3 command.c:364 register_command_handler(): registering 'ocd_ft232r_trst_num'...
Debug: 41 3 command.c:364 register_command_handler(): registering 'ocd_ft232r_restore_serial'...
Info : 42 3 transport.c:117 allow_transports(): only one transport option; autoselect 'jtag'
Debug: 43 3 command.c:364 register_command_handler(): registering 'ocd_jtag_flush_queue_sleep'...
Debug: 44 3 command.c:364 register_command_handler(): registering 'ocd_jtag_rclk'...
Debug: 45 3 command.c:364 register_command_handler(): registering 'ocd_jtag_ntrst_delay'...
Debug: 46 3 command.c:364 register_command_handler(): registering 'ocd_jtag_ntrst_assert_width'...
Debug: 47 3 command.c:364 register_command_handler(): registering 'ocd_scan_chain'...
Debug: 48 3 command.c:364 register_command_handler(): registering 'ocd_jtag_reset'...
Debug: 49 3 command.c:364 register_command_handler(): registering 'ocd_runtest'...
Debug: 50 3 command.c:364 register_command_handler(): registering 'ocd_irscan'...
Debug: 51 3 command.c:364 register_command_handler(): registering 'ocd_verify_ircapture'...
Debug: 52 3 command.c:364 register_command_handler(): registering 'ocd_verify_jtag'...
Debug: 53 3 command.c:364 register_command_handler(): registering 'ocd_tms_sequence'...
Debug: 54 3 command.c:364 register_command_handler(): registering 'ocd_wait_srst_deassert'...
Debug: 55 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 56 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 57 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 58 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 59 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 60 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 61 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 62 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 63 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 64 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 65 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 66 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 67 3 command.c:364 register_command_handler(): registering 'ocd_jtag'...
Debug: 68 3 command.c:364 register_command_handler(): registering 'ocd_svf'...
Debug: 69 3 command.c:364 register_command_handler(): registering 'ocd_xsvf'...
Debug: 70 3 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ft232r_vid_pid 0x0403 0x6015
Debug: 71 3 command.c:143 script_debug(): command - ft232r_vid_pid ocd_ft232r_vid_pid 0x0403 0x6015
Debug: 73 3 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ft232r_tdi_num RI
Debug: 74 3 command.c:143 script_debug(): command - ft232r_tdi_num ocd_ft232r_tdi_num RI
User : 76 3 command.c:544 command_print(): FT232R num: TDI = 7 RI
Debug: 77 3 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ft232r_tdo_num CTS
Debug: 78 3 command.c:143 script_debug(): command - ft232r_tdo_num ocd_ft232r_tdo_num CTS
User : 80 3 command.c:544 command_print(): FT232R num: TDO = 3 CTS
Debug: 81 3 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ft232r_tck_num DSR
Debug: 82 3 command.c:143 script_debug(): command - ft232r_tck_num ocd_ft232r_tck_num DSR
User : 84 3 command.c:544 command_print(): FT232R num: TCK = 5 DSR
Debug: 85 3 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ft232r_tms_num DCD
Debug: 86 3 command.c:143 script_debug(): command - ft232r_tms_num ocd_ft232r_tms_num DCD
User : 88 3 command.c:544 command_print(): FT232R num: TMS = 6 DCD
Debug: 89 3 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ft232r_trst_num RTS
Debug: 90 3 command.c:143 script_debug(): command - ft232r_trst_num ocd_ft232r_trst_num RTS
User : 92 3 command.c:544 command_print(): FT232R num: TRST = 2 RTS
Debug: 93 3 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_ft232r_srst_num DTR
Debug: 94 3 command.c:143 script_debug(): command - ft232r_srst_num ocd_ft232r_srst_num DTR
User : 96 4 command.c:544 command_print(): FT232R num: SRST = 4 DTR
Debug: 97 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_adapter_khz 2000
Debug: 98 4 command.c:143 script_debug(): command - adapter_khz ocd_adapter_khz 2000
Debug: 100 4 core.c:1645 jtag_config_khz(): handle jtag khz
Debug: 101 4 core.c:1612 adapter_khz_to_speed(): convert khz to interface specific speed value
Debug: 102 4 core.c:1612 adapter_khz_to_speed(): convert khz to interface specific speed value
User : 103 4 command.c:544 command_print(): adapter speed: 2000 kHz
Debug: 104 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_jtag newtap riscv cpu -irlen 5 -expected-id 0x10e31913
Debug: 105 4 command.c:143 script_debug(): command - ocd_jtag ocd_jtag newtap riscv cpu -irlen 5 -expected-id 0x10e31913
Debug: 106 4 tcl.c:550 jim_newtap_cmd(): Creating New Tap, Chip: riscv, Tap: cpu, Dotted: riscv.cpu, 4 params
Debug: 107 4 tcl.c:574 jim_newtap_cmd(): Processing option: -irlen
Debug: 108 4 tcl.c:574 jim_newtap_cmd(): Processing option: -expected-id
Debug: 109 4 core.c:1304 jtag_tap_init(): Created Tap: riscv.cpu @ abs position 0, irlen 5, capture: 0x1 mask: 0x3
Debug: 110 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_target create riscv.cpu.0 riscv -chain-position riscv.cpu
Debug: 111 4 command.c:143 script_debug(): command - ocd_target ocd_target create riscv.cpu.0 riscv -chain-position riscv.cpu
Debug: 112 4 target.c:1959 target_free_all_working_areas_restore(): freeing all working areas
Debug: 113 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 114 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 115 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 116 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 117 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 118 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 119 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 120 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 121 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 122 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 123 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 124 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 125 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 126 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 127 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 128 4 command.c:364 register_command_handler(): registering 'ocd_riscv'...
Debug: 129 4 command.c:364 register_command_handler(): registering 'ocd_arm'...
Debug: 130 4 command.c:364 register_command_handler(): registering 'ocd_arm'...
Debug: 131 4 command.c:364 register_command_handler(): registering 'ocd_arm'...
Debug: 132 4 command.c:364 register_command_handler(): registering 'ocd_arm'...
Debug: 133 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 134 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 135 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 136 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 137 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 138 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 139 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 140 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 141 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 142 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 143 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 144 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 145 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 146 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 147 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 148 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 149 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 150 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 151 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 152 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 153 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 154 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 155 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 156 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 157 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 158 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 159 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 160 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 161 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 162 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 163 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 164 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 165 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 166 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 167 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 168 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 169 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 170 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 171 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 172 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 173 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 174 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 175 4 command.c:364 register_command_handler(): registering 'ocd_riscv.cpu.0'...
Debug: 176 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_riscv.cpu.0 configure -work-area-phys 0x80000000 -work-area-size 10000 -work-area-backup 1
Debug: 177 4 command.c:143 script_debug(): command - ocd_riscv.cpu.0 ocd_riscv.cpu.0 configure -work-area-phys 0x80000000 -work-area-size 10000 -work-area-backup 1
Debug: 178 4 target.c:1959 target_free_all_working_areas_restore(): freeing all working areas
Debug: 179 4 target.c:1959 target_free_all_working_areas_restore(): freeing all working areas
Debug: 180 4 target.c:1959 target_free_all_working_areas_restore(): freeing all working areas
Debug: 181 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_echo Ready for Remote Connections
Debug: 182 4 command.c:143 script_debug(): command - echo ocd_echo Ready for Remote Connections
User : 184 4 command.c:790 jim_echo(): Ready for Remote Connections
Info : 185 4 server.c:311 add_service(): Listening on port 6666 for tcl connections
Info : 186 4 server.c:311 add_service(): Listening on port 4444 for telnet connections
Debug: 187 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_init
Debug: 188 4 command.c:143 script_debug(): command - init ocd_init
Debug: 190 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_target init
Debug: 191 4 command.c:143 script_debug(): command - ocd_target ocd_target init
Debug: 193 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_target names
Debug: 194 4 command.c:143 script_debug(): command - ocd_target ocd_target names
Debug: 195 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_riscv.cpu.0 cget -event gdb-flash-erase-start
Debug: 196 4 command.c:143 script_debug(): command - ocd_riscv.cpu.0 ocd_riscv.cpu.0 cget -event gdb-flash-erase-start
Debug: 197 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_riscv.cpu.0 configure -event gdb-flash-erase-start reset init
Debug: 198 4 command.c:143 script_debug(): command - ocd_riscv.cpu.0 ocd_riscv.cpu.0 configure -event gdb-flash-erase-start reset init
Debug: 199 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_riscv.cpu.0 cget -event gdb-flash-write-end
Debug: 200 4 command.c:143 script_debug(): command - ocd_riscv.cpu.0 ocd_riscv.cpu.0 cget -event gdb-flash-write-end
Debug: 201 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_riscv.cpu.0 configure -event gdb-flash-write-end reset halt
Debug: 202 4 command.c:143 script_debug(): command - ocd_riscv.cpu.0 ocd_riscv.cpu.0 configure -event gdb-flash-write-end reset halt
Debug: 203 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_riscv.cpu.0 cget -event gdb-attach
Debug: 204 4 command.c:143 script_debug(): command - ocd_riscv.cpu.0 ocd_riscv.cpu.0 cget -event gdb-attach
Debug: 205 4 command.c:143 script_debug(): command - ocd_command ocd_command type ocd_riscv.cpu.0 configure -event gdb-attach halt
Debug: 206 4 command.c:143 script_debug(): command - ocd_riscv.cpu.0 ocd_riscv.cpu.0 configure -event gdb-attach halt
Debug: 207 4 target.c:1421 handle_target_init_command(): Initializing targets...
Debug: 208 4 riscv.c:430 riscv_init_target(): riscv_init_target()
Debug: 209 5 semihosting_common.c:97 semihosting_common_init():```

RISC-VのコアにはDMのabstractコマンドでアクセスします。

OpenOCDからどんな風にアクセスするのかな?と思って、ログを確認すると次のようにレジスタダンプをしていました。

$ cat ~/openocd.log |grep -i abstract
Debug: 352 70 riscv-013.c:813 execute_abstract_command(): command=0x321008; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1008
Debug: 357 75 riscv-013.c:813 execute_abstract_command(): command=0x320301; access register, size=64, postexec=0, transfer=1, write=0, regno=0x301
Debug: 12845 14361 riscv-013.c:813 execute_abstract_command(): command=0x321001; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1001
Debug: 12859 14371 riscv-013.c:813 execute_abstract_command(): command=0x321002; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1002
Debug: 12872 14382 riscv-013.c:813 execute_abstract_command(): command=0x321003; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1003
Debug: 12885 14393 riscv-013.c:813 execute_abstract_command(): command=0x321004; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1004
Debug: 12898 14404 riscv-013.c:813 execute_abstract_command(): command=0x321005; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1005
Debug: 12911 14415 riscv-013.c:813 execute_abstract_command(): command=0x321006; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1006
Debug: 12924 14426 riscv-013.c:813 execute_abstract_command(): command=0x321007; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1007
Debug: 12937 14437 riscv-013.c:813 execute_abstract_command(): command=0x321008; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1008
Debug: 12950 14448 riscv-013.c:813 execute_abstract_command(): command=0x321009; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1009
Debug: 12963 14459 riscv-013.c:813 execute_abstract_command(): command=0x32100a; access register, size=64, postexec=0, transfer=1, write=0, regno=0x100a
Debug: 12976 14470 riscv-013.c:813 execute_abstract_command(): command=0x32100b; access register, size=64, postexec=0, transfer=1, write=0, regno=0x100b
Debug: 12989 14481 riscv-013.c:813 execute_abstract_command(): command=0x32100c; access register, size=64, postexec=0, transfer=1, write=0, regno=0x100c
Debug: 13002 14492 riscv-013.c:813 execute_abstract_command(): command=0x32100d; access register, size=64, postexec=0, transfer=1, write=0, regno=0x100d
Debug: 13015 14503 riscv-013.c:813 execute_abstract_command(): command=0x32100e; access register, size=64, postexec=0, transfer=1, write=0, regno=0x100e
Debug: 13028 14514 riscv-013.c:813 execute_abstract_command(): command=0x32100f; access register, size=64, postexec=0, transfer=1, write=0, regno=0x100f
Debug: 13041 14525 riscv-013.c:813 execute_abstract_command(): command=0x321010; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1010
Debug: 13054 14536 riscv-013.c:813 execute_abstract_command(): command=0x321011; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1011
Debug: 13067 14547 riscv-013.c:813 execute_abstract_command(): command=0x321012; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1012
Debug: 13080 14558 riscv-013.c:813 execute_abstract_command(): command=0x321013; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1013
Debug: 13093 14569 riscv-013.c:813 execute_abstract_command(): command=0x321014; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1014
Debug: 13106 14580 riscv-013.c:813 execute_abstract_command(): command=0x321015; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1015
Debug: 13119 14591 riscv-013.c:813 execute_abstract_command(): command=0x321016; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1016
Debug: 13132 14602 riscv-013.c:813 execute_abstract_command(): command=0x321017; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1017
Debug: 13145 14613 riscv-013.c:813 execute_abstract_command(): command=0x321018; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1018
Debug: 13158 14624 riscv-013.c:813 execute_abstract_command(): command=0x321019; access register, size=64, postexec=0, transfer=1, write=0, regno=0x1019
Debug: 13171 14635 riscv-013.c:813 execute_abstract_command(): command=0x32101a; access register, size=64, postexec=0, transfer=1, write=0, regno=0x101a
Debug: 13184 14646 riscv-013.c:813 execute_abstract_command(): command=0x32101b; access register, size=64, postexec=0, transfer=1, write=0, regno=0x101b
Debug: 13197 14657 riscv-013.c:813 execute_abstract_command(): command=0x32101c; access register, size=64, postexec=0, transfer=1, write=0, regno=0x101c
Debug: 13210 14668 riscv-013.c:813 execute_abstract_command(): command=0x32101d; access register, size=64, postexec=0, transfer=1, write=0, regno=0x101d
Debug: 13223 14679 riscv-013.c:813 execute_abstract_command(): command=0x32101e; access register, size=64, postexec=0, transfer=1, write=0, regno=0x101e
Debug: 13236 14690 riscv-013.c:813 execute_abstract_command(): command=0x32101f; access register, size=64, postexec=0, transfer=1, write=0, regno=0x101f
Debug: 13249 14701 riscv-013.c:813 execute_abstract_command(): command=0x3207b1; access register, size=64, postexec=0, transfer=1, write=0, regno=0x7b1

しかし、Debugのドキュメントを読むと昔のRFCを作られた感覚のようにやったもん勝ちっていう雰囲気がありました。

それにDebugのドキュメントはマウントを取るのを急いだのか、中身が洗練されていないです。

]]>
Sat, 24 Aug 2019 22:01:18 +0900 https://sweetcafe.jp/2019-08-24 22:01:18
ダウンロードサイトの最終チェック https://sweetcafe.jp/?*20190804-223600 ダウンロードサイトの最終チェック

技書博で頒布した「FPGAの内容が薄い本2」と「Markdown組版」の同人誌をダウンロードすることにしました。

ただ、RTLやチップの底辺を本職なのでダウンロードサイト自体も作成することにしました。

不具合が発生する要因は残っていると思いますが、ダウンロード版のサイトを開始します。

ただし、同人誌のダウンロードは電子版のみの販売や公開は致しません。

あくまで、物理本の補足又は誤植をサポートするものであって、ただ、誤植が書いている内容も内容自体が誤植で180度変えるものなら、180度変えたものを提供する予定です。

以前は陳腐化すると思ってたので新刊にしていたもので内容で掲載したバージョンが同じで陳腐化したならアップデートしたいと思っています。

もう少し、デバッグを行って、公開する予定です。

]]>
Sun, 04 Aug 2019 22:36:00 +0900 https://sweetcafe.jp/2019-08-04 22:36:00