Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:4
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Отладочные платы » SK-iMX53
[iMX535] - kernel
Jury093
Добавлено 18.01.2012 00:35
0
Сообщение: 1
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
ядерные проблемы, заморочки, улучшения и решения..

в рамках возни с параллельным интерфейсом для LCD и неожиданно пропавшим звуком (на заводской из нанда все играет) наткнулся на непонятный (мне) эффект:
в файле платы mx53_loco.c есть некий массив пинов:
Код
static iomux_v3_cfg_t mx53_loco_pads[] = {
#if 0
// move by jury093
/* Audio CLK*/
MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK,
/* VGA */
MX53_PAD_EIM_OE__IPU_DI1_PIN7,
и тыды

массив бодро сливается:
Код
static void __init mx53_loco_io_init(void)
{
printk("*** Setup common pads\n");
mxc_iomux_v3_setup_multiple_pads(mx53_loco_pads,
ARRAY_SIZE(mx53_loco_pads));
printk("*** Setup nand pads\n");

mxc_iomux_v3_setup_multiple_pads(mx53_nand_pads,
ARRAY_SIZE(mx53_nand_pads));

смотрим место начала слива:
Код
int mxc_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t *pad_list, unsigned count)
{
iomux_v3_cfg_t *p = pad_list;
// int i;
int ret;
printk("count=%d\n", count);

for (z = 0; z < count; z++) {
printk("i=%d ", z);
ret = mxc_iomux_v3_setup_pad(*p);


вот кусок результата в логе ядра:
Код
*** Setup common pads
count=86
i=0 mux_ctrl=00000004 - pad_ctrl=00000000
i=1 mux_ctrl=00000001 - pad_ctrl=00000000
i=2 mux_ctrl=00000001 - pad_ctrl=00000000
i=3 mux_ctrl=00000000 - pad_ctrl=00000004
бла-бла
i=83 mux_ctrl=00000000 - pad_ctrl=00000000
i=84 mux_ctrl=00000000 - pad_ctrl=00000000
i=85 mux_ctrl=00000000 - pad_ctrl=00000000
*** Setup nand pads
count=18
i=0 mux_ctrl=00000000 - pad_ctrl=00000004
i=1 mux_ctrl=00000000 - pad_ctrl=00000004
еще 16 бла-бла

и вроде бы все ничего, но.. элементов в массиве 123, а в логе count=86.. в числе последних в массиве пины LCD parallel..

зы1 сейчас пробовать не буду, уже поздно - как вариант - распилить массив на две части и попробовать инициализировать две группы по 62 пина..

зы2 звук таки пошел, но как-то странно. пробовал через tlv320, spdif некуда включить..

зы3 что-то мне кросскомпилер не нравиться :/

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 18.01.2012 00:45 Редактировалось 18.01.2012 00:47 Сообщение: 2
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Я ничего не понял :) что куда сливается и зачем ты закоментировал конфигурирование пина с которого тактируется аудиокодек
Код

#if 0
// move by jury093
/* Audio CLK*/
MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK,


PS нормальный там кросскомпилятор
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 18.01.2012 08:00 Редактировалось 18.01.2012 08:01 Сообщение: 3
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Я ничего не понял :) что куда сливается и зачем ты закоментировал конфигурирование пина с которого тактируется аудиокодек

#if 0
// move by jury093
/* Audio CLK*/
MX53_PAD_GPIO_0__CCM_SSI_EXT1_CLK,

не-не, ничего не закомментированно - все так было изначально..
единственное, я добавил туда 2 пина для i2c-gpio и 1 пин для pwm..
кратенько еще раз: есть массив задефайненных пинов, их 123шт, далее по цепочке они инициализируются, но в п/п инита счетчик работает до 86 - с моей точки зрения, при передаче параметров где-то теряется истинное значение..
вечером распилю массив на 2 части и проверю..

объясни, плз, в чем смысл конструкции
Код
#if 0
что-нить внутри
#endif (мог наврать в операторе)

часто ее вижу, а смысл не постичь.. типа заглушки на будущее?

Цитата
PS нормальный там кросскомпилятор

не уверен, при случае попробую в другой среде собрать..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 18.01.2012 08:47 Редактировалось 18.01.2012 08:49 Сообщение: 4
sasamy
4.71

Пункты: 83542
Регистрация: 14.08.2009
Цитата

// move by jury093


Ага, изначально так было :)

Цитата

#if 0
что-нить внутри
#endif (мог наврать в операторе)


временно закоментировано - эта часть кода не дойдет до компилятора. Чаще всего так лучше не делать, но тут другой случай - там пины которые в будущем скорей всего понадобятся, но сейчас в силу каких-то причин не используются, например в текущей ревизии CSI разведен не на те пины, VGA выведен но без преобразоателя уровней скорей всего работать не будет и т.д.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 18.01.2012 09:58 Сообщение: 5
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
// move by jury093
Ага, изначально так было :)

дак кто ж знал :)
этот пин был в самом низу массива, и перенос в первые ряды - это жест отчаяние, в поисках причин неработоспособности аудиокодека.. но ведь кодек запустился..

Цитата
временно закоментировано - эта часть кода не дойдет до компилятора.

!!!!!!!!!!!!! а я столько времени считал, что наоборот!!!!!!!!!!!!!!
вечером буду посмотреть - откуда тогда извлекается список падов для конфигурации :/

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 18.01.2012 22:24 Сообщение: 6
Jury093
4.5

Пункты: 54271
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
временно закоментировано - эта часть кода не дойдет до компилятора.

а я бы еще долго рыл землю носом в поисках отсутствия наличия инита клоковой..
разумеется запихал между этими операторами и никто не интился..
вернул "на место" и звук пошел - спасибо Саша

и с числом пинов в массиве все нормально - все "нашлись" :)
осталась неясность с амплитудой clk на rgb if, но это в другую тему..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-iMX53