0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

bcmbm-mrubyでException

Last updated at Posted at 2023-04-22

mruby 3.2ベースでビルドしたモジュールでSimpleHttpすると落ちるようになってしまいました。

Hello Bear Metal mruby on BCM/mips
10.0.1.128
simple http 1
**Exception 32: EPC=80035240, Cause=9080002C (CoProcUnu)
                RA=8003523C, VAddr=00000000

        0  ($ 0) = 00000000     AT ($ 1) = A0000000
        v0 ($ 2) = 00000000     v1 ($ 3) = 00000000
        a0 ($ 4) = 00000000     a1 ($ 5) = 800AE4D0
        a2 ($ 6) = 0000002B     a3 ($ 7) = 00000001
        t0 ($ 8) = 0000003F     t1 ($ 9) = 00000026
        t2 ($10) = 0000007C     t3 ($11) = 0000002A
        t4 ($12) = 0000003A     t5 ($13) = 00000021
        t6 ($14) = 000000BF     t7 ($15) = 0000002C
        s0 ($16) = 00000005     s1 ($17) = 80FFFDC8
        s2 ($18) = 800CC5E0     s3 ($19) = 00000000
        s4 ($20) = 800D64A8     s5 ($21) = 0000002F
        s6 ($22) = 800CC5E0     s7 ($23) = 800B53AC
        t8 ($24) = 000002E0     t9 ($25) = 800D77F0
        k0 ($26) = 80FFFDC8     k1 ($27) = 800D1AA0
        gp ($28) = 8043BDC0     sp ($29) = 80FFFD00
        fp ($30) = 800B292A     ra ($31) = 8003523C

Decompressing..........done
 >0x80FFFFFF>complite

ヘッダーの連想配列のsortで落ちていました。

レジスタの中身から16Mのメインメモリの前後1Mくらいしか使ってないので、メモリ不足ではないようです。

Exceptionの理由はコプロセッサー関係ですが、明示的にアクセスしてるところはないので、直接的な原因ではないと考えられます。

なぜかadmbm-mrubyでは問題が起きません。

build_config.rbを見比べたところ、bcmbmには-march=mips32あり、admbmにはなかったので外してみました。

なんとこれで問題が解決しました。

BCMはmips32なので付けてもよさそうなのですが、ダメみたいです。

admbmはbcmbmから作ったのですが、なぜ外したかは覚えていません。

mrubyみたいな複雑なプログラムはコンパイル時のオプションがシビアなのかもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?