コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2023年7月18日 >>> 2023年7月9日
link もっと後

2023年7月14日

AndesのCPUコアが搭載されたRISC-V SoCボードを購入

目次: RISC-V

先日6月14日に発売開始されたRenesas RZ/Five(R9A07G043F01GBG)搭載のボードAP-RZFV-0A製品紹介サイトへのリンク)を購入しました。

SoCはRenesas製で、CPUコアは台湾Andes TechnologyのAX45MP(製品紹介サイトへのリンク)です。

追加部品を購入

ボードだけ購入するとACアダプタが付属していません。全部入りが良ければLinux開発キットを併せて購入すると良いかと思います。

秋月にて5VセンタープラスのACアダプタATS012S-W050U(製品紹介サイトへのリンク)を購入しました。700円です。安い。何も考えず2A出力のアダプタにしましたが、出力が足りなかったらまた考えます。

ボード上のJTAG端子CN3を見ると、ハーフピッチと呼ばれる1.27mm間隔の10ピンヘッダでした。このヘッダに接続できるJTAGケーブルを持っていないので、Strawberry LinuxにてJTAG変換基盤ARM-JTAG-20-10(製品紹介サイトへのリンク)を購入しました。800円くらいです。これも安い。

電源に関してはACアダプタ以外にも、安定化電源やUSBから取る方法(ジャンパ端子J18を半田付けでショートさせる必要あり)があります。ボードのマニュアルをご参照ください。

JTAGを繋ぐ

JTAGコネクタCN3にJTAG変換基盤ARM-JTAG-20-10のハーフピッチコネクタを接続します。ケーブルの赤い線が1番ピン側(ボード上の白い三角マークがある、LANコネクタなどがある方)です。写真も載せておきます。


AP-RZFV-0A CN3にJTAGケーブルを接続

ボードのマニュアルを見るとわかりますが、SoCにDEBUGENという端子があり [1]DebugModeと [0]NormalMode(出荷時設定)があるそうです。ボード上のDIPスイッチ(SW2の3番)をOFFにするとDebugModeに切り替わりJTAGが繋がるようになります。

OpenOCDにて接続

お持ちのJTAGによって設定がやや違いますが、SEGGER J-Linkの場合はOpenOCDの設定ファイルはこんな感じです。

OpenOCD設定ファイルfor RZ/Five
adapter speed 1000
reset_config trst_and_srst
 
set _CHIPNAME riscv
set _DAP_TAPID 0x1000563d
 
jtag newtap $_CHIPNAME dap -irlen 5 -ircapture 0x01 -irmask 0x03 \
        -expected-id $_DAP_TAPID
 
set _TARGETNAME $_CHIPNAME.cpu
target create $_TARGETNAME.0 riscv -chain-position $_CHIPNAME.dap -coreid 0

設定をファイルに保存したら、J-Linkの設定ファイルとともに指定して起動しましょう。

OpenOCD起動ログ
$ sudo ./src/openocd -c 'bindto 0.0.0.0' -f tcl/interface/jlink.cfg -f ~/openocd_renesas_rzv.cfg

Open On-Chip Debugger 0.11.0+dev-00551-gaad871805 (2022-01-16-22:30)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
0
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : J-Link V11 compiled Jul  3 2020 10:47:34
Info : Hardware version: 11.00
Info : VTarget = 1.812 V
Info : clock speed 1000 kHz
Info : JTAG tap: riscv.dap tap/device found: 0x1000563d (mfg: 0x31e (Andes Technology Corporation), part: 0x0005, ver: 0x1)
Info : datacount=4 progbufsize=8
Info : Examined RISC-V core; found 1 harts
Info :  hart 0: XLEN=64, misa=0x800000000094312d
Info : starting gdb server for riscv.cpu.0 on 3333
Info : Listening on port 3333 for gdb connections

無事CPUが認識されました。よきかなよきかな。

編集者:すずき(2023/07/19 08:54)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2023年7月13日

PHP 8への道のり

目次: 自宅サーバー

この日記システムをPHPの最新バージョンPHP 8に対応させました。

きっかけはさくらインターネットから「PHP 5を使うのは危険だよ」というメールが来たことです。PHP 5.6のEOLは2018年なので5年くらい放置していたんですね。さすがにサボりすぎました。

PHP 5とPHP 7は互換性が保たれていて(PHP 6は欠番らしい)おり1文字も変更することなくPHPのバージョンアップに対応できました。ところがPHP 8は古い機能を色々と廃止したようで全く動きませんでした。

PHP 8で動かなくなった機能達

PHP 8で動かなくなった機能達のエラーメッセージや直し方(正しいかどうか知らない)を順不同で紹介したいと思います。

get_magic_quotes_gpc() 関数は廃止
PHP Fatal error:  Uncaught Error: Call to undefined function get_magic_quotes_gpc()

この関数は説明を見ても常にfalseを返すと書いてあり、もはや存在しようがしなかろうが呼ぶ意味がありません。この関数を呼んでいるコードごと消しました。

クラスのコンストラクタが曲者でした。PHP 7までクラスと同名の関数がコンストラクタ扱いされましたが、PHP 8から __construct() がコンストラクタ扱いされます。この変更の影響であらゆるクラスの初期化が実行されなくなって、訳のわからないエラーを引き起こしました。デバッグが一番面倒くさかったです。

波括弧のオフセット指定は廃止
PHP Fatal error:  Array and string offset access syntax with curly braces is no longer supported

PHP 8では波括弧 {} によるオフセットの指定が廃止されたので、角括弧 [] に置き換える必要があります。難しくはないですが、地味に使っている箇所が多く修正が大変でした……。

each() 関数は廃止
PHP Fatal error:  Uncaught Error: Call to undefined function each()

PHP 8ではeach() 関数が廃止されました。これも複数ヶ所で使っていて修正が面倒でした。

修正例

// 修正前
reset($array);
list($a, $b) = each($array);

// 修正後
reset($array);
$a = key($array);
$b = current($array);

上記のように先頭のキーと値を取り出すためだけに使っていたので、単純にkey() とcurrent() 関数で書き換えました。

mb_strrpos() の引数
PHP Fatal error:  Uncaught TypeError: mb_strrpos(): Argument #3 ($offset) must be of type int, string given

PHP 7はmb_strrpos() 関数の3番目の引数(offsetの位置)にencodeを指定してもエラーにならなかったのですが、PHP 8ではoffset, encodeを指定しないとエラーになるようです。PHPは良くわかりませんなあ。

編集者:すずき(2024/01/13 14:29)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2023年7月12日

自宅のサーバーとPHP

目次: 自宅サーバー

自宅のファイルサーバー兼WebサーバーでPHPが動かなくなっていました。

素のPHP 8すら動かないので、おそらくPHP 5の寿命が尽きたときにPHP周りの設定が全部吹っ飛んで動かなくなったと思われます。自宅のWebサーバーは自宅から見えないので、長らく気づいていませんでした……。あれまあ。

まずはPHP CGIや日記システムで使っているGDやmbstringをインストールします。

PHPのインストール
# apt-get install php-cgi php-gd libapache2-mod-php8.2 php8.2-mbstring

Apache 2の設定ファイルを変更してPHP 8.2を有効にします。

Apache 2でPHP 8.2を有効にする
# cd /etc/apache2/mods-enabled
# ln -s ../mods-available/php8.2.conf
# ln -s ../mods-available/php8.2.load

# systemctl restart apache2

Apache 2はユーザーディレクトリといって /home/username/public_html/ ディレクトリに置いたファイルが、URL /~username/ で見える仕組みがありまして、日記システムはユーザーディレクトリに配置しています。

初期状態のphp8.2.confだとユーザーディレクトリの配下にあるPHPスクリプトは動きません。わざと無効化してあります。

php 8.2のユーザーディレクトリの設定

# /etc/apache2/mods-enabled/php8.2.conf

#...略...

# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

コメントにある通りIfModuleタグごと全てコメントにして、Apache 2を再起動しましょう。これできっとPHP 8が動くはずです。

編集者:すずき(2024/01/13 14:29)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2023年7月18日 >>> 2023年7月9日
link もっと後

管理用メニュー

link 記事を新規作成

<2023>
<<<07>>>
------1
2345678
9101112131415
16171819202122
23242526272829
3031-----

最近のコメント5件

  • link 21年3月13日
    すずきさん (03/05 15:13)
    「あー、このプログラムがまずいんですね。ご...」
  • link 21年3月13日
    emkさん (03/05 12:44)
    「キャストでvolatileを外してアクセ...」
  • link 24年1月24日
    すずきさん (02/19 18:37)
    「簡単にできる方法はPowerShellの...」
  • link 24年1月24日
    KKKさん (02/19 02:30)
    「追伸です。\nネットで調べたらマイクロソ...」
  • link 24年1月24日
    KKKさん (02/19 02:25)
    「私もエラーで困ってます\n手動での回復パ...」

最近の記事3件

  • link 24年3月25日
    すずき (03/26 03:20)
    「[Might and Magic Book One TASのその後] 目次: Might and Magicファミコン版以前(...」
  • link 21年10月4日
    すずき (03/26 03:14)
    「[Might and Magicファミコン版 - まとめリンク] 目次: Might and Magicファミコン版TASに挑...」
  • link 24年3月19日
    すずき (03/20 02:52)
    「[モジュラージャックの規格] 古くは電話線で、今だとEthernetで良く見かけるモジュラージャックというコネクタとレセプタク...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 03/26 03:20