Ошибка ошибки сегментации после выполнения образца c6accel
Я использую 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
В setup.sh DVSDK я использовал следующие параметры: память платы 64 МБ, расположение ядра 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
Хорошо. Я игнорирую это и ввожу логин.
root@arago:/c6accel_app# ls
benchmarking.txt dsplinkk.ko
c6accel_app loadmodules_omapl138_c6accel.sh
c6accel_omapl138.x674 test_files
cmemk.ko
Хорошо!
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 я изменил только одну строку
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
Что-то сломалось Это полностью сломано. Что мне делать в этом случае? Спасибо.
1 ответ
Шкатулка легко открывается....
Устройство имеет 64 МБ оперативной памяти. Этой командой
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 МБ - для ядра. Другие 32 мб для CMEM. Нет ошибок сегментации больше.