1

OMAP-L138 Exp Kitを使用しています。まず、私の U-Boot のプロパティを見てください。

それらは次のとおりです。

U-Boot > printenv
    baudrate=115200
    autoload=no
    bootcmd=run netboot
    bootfile=uImage-da850-omapl138-evm.bin
    filesize=204104
    fileaddr=C0700000
    rootpath=/home/my_name/targetfs
    netboot=tftpboot 0xc0700000 uImage-da850-omapl138-evm.bin; bootm 0xc0700000
    bootargs=console=ttyS2,115200n8 mem=64M root=/dev/nfs rw nfsroot=192.168.1.218:/home/my_name/targetfs ip=192.168.1.231
    netargs=console=ttyS2,115200n8 noinitrd rw mem=64M root=/dev/nfs rw nfsroot=192.168.1.218:/home/my_name/targetfs,nolock ip=192.168.1.231
    stdin=serial
    stdout=serial
    stderr=serial
    ver=U-Boot 2009.11 (Jan 13 2011 - 01:05:37)
    Environment size: 728/65532 bytes

DVSDK の setup.sh で、次のパラメータを使用しました:ボード メモリ 64 mb、Linux カーネルの場所 - TFTP、ルート ファイル システムの場所 - NFS。DVSDK の作成に成功しました。c6accel_1_01_00_07 ディレクトリにもインストールしました。

root@my_name-desktop:/usr/local/dvsdk/c6accel_1_01_00_07# make install
Creating /home/my_name/targetfs/c6accel_app
Copying kernel modules to target file system: /home/my_name/targetfs/c6accel_app/
Copying cmemk.ko
Copying dsplinkk.ko
Copying c6accel codec servers from /usr/local/dvsdk/c6accel_1_01_00_07
Copying c6accel test app from /usr/local/dvsdk/c6accel_1_01_00_07
Copying testfile from /usr/local/dvsdk/c6accel_1_01_00_07

次に、C6accel サンプルを実行します。というわけでターゲットをリセット。いや、なんだっけ?

CMEM Range Overlaps Kernel Physical - allowing overlap
CMEM phys_start (0xc2000000) overlaps kernel (0xc0000000 -> 0xc4000000)
CMEMK Error: Failed to request_mem_region(0xc2000000, 18874368)
FATAL: Error inserting cmemk (/lib/modules/2.6.37/kernel/drivers/dsp/cmemk.ko): Bad address

Ok。私はそれを無視してログインします。

root@arago:/c6accel_app# ls
benchmarking.txt                 dsplinkk.ko
c6accel_app                      loadmodules_omapl138_c6accel.sh
c6accel_omapl138.x674            test_files
cmemk.ko 

Ok!

root@arago:/c6accel_app# ./loadmodules_omapl138_c6accel.sh
    CMEMK module: built on Apr 12 2012 at 17:32:52
      Reference Linux version 2.6.37
      File /usr/local/dvsdk/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
    CMEM Range Overlaps Kernel Physical - allowing overlap
    CMEM phys_start (0xc2000000) overlaps kernel (0xc0000000 -> 0xc4000000)
    CMEMK Error: Failed to request_mem_region(0xc2000000, 18874368)
    FATAL: Error inserting cmemk (/lib/modules/2.6.37/kernel/drivers/dsp/cmemk.ko): Bad address

おっと!また同じエラー!

ファイル loadmodules_omapl138_c6accel.sh で、1 つの文字列のみを変更しました

modprobe cmemk phys_start=0xC2000000 phys_end=0xC3200000 pools=20x4096 allowOverlap=1

だから、最終的に私は持っています

modprobe cmemk phys_start=0xC4000000 phys_end=0xC5200000 pools=20x4096 allowOverlap=1

保存しました。 試行 2。

root@arago:/c6accel_app# ./loadmodules_omapl138_c6accel.sh
CMEMK module: built on Apr 12 2012 at 17:32:52
  Reference Linux version 2.6.37
  File /usr/local/dvsdk/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
allocated heap buffer 0xc5000000 of size 0x11ec000
cmemk initialized

成功!次に、./c6accel_app を実行しました

見てよかった

Test for Arithmetic RTS functions successful
******************************************************************************
All tests done.
******************************************************************************

libgcc_s.so.1 must be installed for pthread_cancel to work

でも早い……。

root@arago:/c6accel_app# ls
Segmentation fault 

何かが壊れた。完全に壊れました。この場合、どうすればよいですか?ありがとうございました。

4

1 に答える 1

0

棺は簡単に開けられます....

デバイスには 64 MB の RAM があります。このコマンドで

bootargs=console=ttyS2,115200n8 mem=64M root=/dev/nfs rw nfsroot=192.168.1.218:/home/my_name/targetfs ip=192.168.1.231

私は単に「オーケー、カーネル、全部持っていくんだ。全部君のためだ」と言うだけだ。

だから...私が欲しかったものを手に入れました:32 mb - カーネル用。その他 CMEM 用に 32 mb。もうセグメンテーション違反はありません。

于 2012-04-13T09:25:42.987 に答える