andybeg
Sep 2 2010, 05:40
в линуксе это делается через прописывагие нужного приложения в rc.local, в сборке uClinux для моей платы нашёл файл rc, в нём тоже прописывается ряд приложений и действий по старту, но запуска приложения не происходит

Цитата
#!/bin/sh
hostname MK
/bin/expand /etc/ramfs.img /dev/ram1
mount -t proc proc /proc
mount -t ext2 /dev/ram1 /var
mkdir /var/tmp
mkdir /var/log
mkdir /var/run
mkdir /var/lock
mkdir /var/empty
/bin/mknod /dev/ttyS0 c 4 64
/bin/mknod /dev/ttyS1 c 4 65
/bin/mknod /dev/ttyS2 c 4 66
/bin/mknod /dev/ttyS3 c 4 67
ifconfig lo 127.0.0.1
#ifconfig eth0 192.168.0.220 broadcast 192.168.0.255 netmask 255.255.255.0
#httpd &
cat /etc/motd
/bin/uart
Совсем старый Бабай
Sep 2 2010, 10:23
Первое, почему приложение находиться в коатлоге bin?
Второе, запуск идет от root или от пользователя?
andybeg
Sep 2 2010, 10:36
>>Первое, почему приложение находиться в коатлоге bin?
потому что после сборки uClinux исполняемый файл был засунут туда
>>Второе, запуск идет от root или от пользователя?
по аналоги с обычным линуксом могу предположить что то что запускается из файла rc, запускается от рута. в тоже время после загрузки uClinux в дебаговой консоли пишу uart и программа стартует ...
Совсем старый Бабай
Sep 3 2010, 02:07
Бредовые мысли конечно, но попробуйте переписатьв /home и запустить оттуда и второе что делает программа uart. Может просто косяк с настройками порта? Как определили что програма не запускаеться? По запущенным процессам? Можно в первых строках main вставить какой нибуть printf().
andybeg
Sep 3 2010, 04:07
Цитата(Совсем старый Бабай @ Sep 3 2010, 06:07)

Как определили что програма не запускаеться? По запущенным процессам? Можно в первых строках main вставить какой нибуть printf().
определил что не запускается, потому что по старту программа гасит два светодиода, а этого не происходит, в тоже время запуск программы из дебаговой консоли проходит удачно
romez777
Sep 6 2010, 07:53
Начните с примитивного приложения "hello world", если при старте на консоль печатает строку, значит что-то не так с вашим более усложненным приложением uart - может ли так быть, что какие-то аппаратные блоки еще "не готовы" в момент запуска init и выполнения /etc/rc ? А чуть позже, когда "пыль осела и все железо готово" запуск вручную работает.
Ivan_Kov
Sep 7 2010, 07:48
Цитата(andybeg @ Sep 2 2010, 09:40)

в линуксе это делается через прописывагие нужного приложения в rc.local, в сборке uClinux для моей платы нашёл файл rc, в нём тоже прописывается ряд приложений и действий по старту, но запуска приложения не происходит

У вас ядро 2.6.21?
Если да, то там похоже есть глюк (или нюанс который я не понял):
Добавлять самой последней стокой в /etc/rc свою программу не надо, она действительно не запускается. добавьте где-нибудь в середине, ближе к концу.
у меня это выглядит примерно так:
CODE
........
........
........
#insmod /lib/modules/2.6.21-uc0/kernel/drivers/usb/gadget/g_file_storage.ko file=/dev/mmca1
LANG=ru_RU
httpd &
/bin/myprog </dev/mtrm1 >/dev/mtrm1 2>/dev/mtrm1 &
# if user defined rc exists then execute it
if [ -f /mnt/mmc/userrc ]; then
/bin/sh /mnt/mmc/userrc
fi
andybeg
Sep 7 2010, 09:07
интересное наблюдение
ядро 2.6.24.2, сделал по рекомендации, но это ничего не изменило

Цитата
#!/bin/sh
hostname MTK
/bin/expand /etc/ramfs.img /dev/ram1
mount -t proc proc /proc
mount -t ext2 /dev/ram1 /var
mkdir /var/tmp
mkdir /var/log
mkdir /var/run
mkdir /var/lock
mkdir /var/empty
/bin/uart
/bin/mknod /dev/ttyS0 c 4 64
/bin/mknod /dev/ttyS1 c 4 65
/bin/mknod /dev/ttyS2 c 4 66
/bin/mknod /dev/ttyS3 c 4 67
ifconfig lo 127.0.0.1
#ifconfig eth0 192.168.0.220 broadcast 192.168.0.255 netmask 255.255.255.0
#httpd &
cat /etc/motd
andybeg
Oct 6 2010, 05:43
переставил осьссусе32 на убунту64 , вроди бы ничего не менял, но после перекомпиляции и запуска получил кернелпаник, похожий на тт что в ветке рядом, посмотрел в установки uClinux и понял что там не взведён init, поставил его , но получил следующее
Код
RAMDISK: romfs filesystem found at block 0
RAMDISK: Loading 213KiB [1 disk] into ram disk... done.
VFS: Mounted root (romfs filesystem) readonly.
init: exec rc failed
init: Booting to single user mode
init: exec of single user shell failed
init: Missing PROCESS field in inittabinit: Missing PROCESS field in inittabinit: Missing PROCESS field in initt
init: -/bin/sh respawning too fast
init: -/bin/sh exec failed
init: -/bin/sh respawning too fast
init: -/bin/sh respawning too fast
init: -/bin/sh exec failed
init: -/bin/sh respawning too fast
init: -/bin/sh respawning too fast
init: -/bin/sh einit: -/bin/sh respawning too fast
при rc
Код
#!/bin/sh
hostname MTK
/bin/expand /etc/ramfs.img /dev/ram1
mount -t proc proc /proc
mount -t ext2 /dev/ram1 /var
mkdir /var/tmp
mkdir /var/log
mkdir /var/run
mkdir /var/lock
mkdir /var/empty
/bin/mknod /dev/ttyS0 c 4 64
/bin/mknod /dev/ttyS1 c 4 65
/bin/mknod /dev/ttyS2 c 4 66
/bin/mknod /dev/ttyS3 c 4 67
ifconfig lo 127.0.0.1
#ifconfig eth0 192.168.0.220 broadcast 192.168.0.255 netmask 255.255.255.0 G2420HDBL
#httpd &
cat /etc/motd
uart
# that's it... success
exit 0
В rc.local напишите не /bin/uart
а точное имя файла с расширением, например /bin/uart. (точка в конце)
Файл должен иметь атрибут исполняемой программы.
andybeg
Oct 7 2010, 08:00
методом научного тыка(делал make menuconfig и подключал опции которые могли бы повлиять на пуск) удалось запустить, основной проблемой как понимаю было отсутствие в моей сборке Core Application-init
вапще было бы неплохо найти книжку где бы были описаны ВСЕ позиции настройки uClinux через make menuconfig,не обладаете такой информацией?
заработал старый конфиг который был изначально, тоесть стартовую строку программы правильно написал
andybeg
Oct 27 2010, 09:46
так как требовалось видеть дебаговую консоль, почти всё время пользовал плату с воткнутым дебаговым кабелем и вот отключив его полусил, что не стартует uClinux, гугленье пока что не принесло плодов
Цитата(andybeg @ Oct 27 2010, 13:46)

с воткнутым дебаговым кабелем
Значит сигнал сброса и выбора бутлоадера на плате формируются неправильно,
а через консольный RS232 они приходят из компьютера по линиям DTR и RTS.
andybeg
Oct 27 2010, 12:18
у меня грузится uboot, выводится пингвин(на этом всё стопорится), значит всётаки не в этом дело?
andybeg
Oct 28 2010, 13:40
по схематике у нас на разъёме используются RXD TXD GND DSR CTS, соединил CTS и GND и всё заработало, электронщик сказал что надо на бут резюк поставить,чтобы он в воздухе не мотался
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.