novlev 0 22 октября, 2013 Опубликовано 22 октября, 2013 · Жалоба cplb_miss_without_replacement - откуда ноги уэто йоштбки растут, кто-нибудь сталкивался? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 22 октября, 2013 Опубликовано 22 октября, 2013 · Жалоба Ноги у неё растут из нечитанных даташитов. ;) Если Вы не желаете изучать процессор до тонкостей, успеха вам не видать... Но Вы можете избежать всех этих непонятных проблем, запустив на плате OS. Например uClinux. Если проект обьёмный, то вам рано или поздно придётся это сделать. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novlev 0 22 октября, 2013 Опубликовано 22 октября, 2013 · Жалоба Даташиты прочитаны, именно из них следует, что визард сам сгенерит несколько масок настройки кеша, и он это делает, и забьет цплд таблицы - и это он делает. Но код вылетает. никаких линухов никто запускать не будет, это гиблый путь. Специфика работы - никакого чужого кода. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 22 октября, 2013 Опубликовано 22 октября, 2013 · Жалоба >> никакого чужого кода Эх печалька вам тогда... А что возвестили вам даташиты по поводу кода ошибки? Цифру огласите. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novlev 0 22 октября, 2013 Опубликовано 22 октября, 2013 (изменено) · Жалоба >> никакого чужого кода Эх печалька вам тогда... А что возвестили вам даташиты по поводу кода ошибки? Цифру огласите. Ну пичальки никакой не вижу, а код ошибки - Instruction fetch CPLB miss 0x2C E CPLB miss on an instruction fetch. Не пойму, что не так с сгенерированой таблицей. Может не в таблице дело? Приведу и таблицу. #pragma section("cplb_data") cplb_entry icplbs_table[] = { /*$VDSG<customizable-instr-cplb-table> */ /* This code is preserved if the CPLB tables are re-generated. */ // L1 Code {0xFFA00000, (PAGE_SIZE_1MB | CPLB_I_PAGE_MGMT)}, // Async Memory Bank 2 (Secnd) // Async Memory Bank 1 (Prim B) // Async Memory Bank 0 (Prim A) //{0x20200000, (PAGE_SIZE_1MB | CPLB_INOCACHE)}, // {0x20100000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, // {0x20000000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, // 128 MB (Maximum) SDRAM memory space (32/64 MB populated on Ez-kit) // CPLBs covering 16MB {0x00000000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00100000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00200000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00300000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00400000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00500000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00600000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00700000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00800000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00900000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00a00000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00b00000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00c00000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00d00000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00e00000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, {0x00f00000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, // Async Memory Bank 3 // {0x20300000, (PAGE_SIZE_1MB | CPLB_INOCACHE)}, // 32kB Boot ROM {0xEF000000, (PAGE_SIZE_1MB | CPLB_IDOCACHE)}, // end of section - termination {0xffffffff, 0}, /*$VDSG<customizable-instr-cplb-table> */ }; /* icplbs_table */ Что странно - адрес вылета - 0100002E, он вроде как для моего процессора находится в области "резерв". В мимуляторе отработало все как надо... но ему доверять... Изменено 22 октября, 2013 пользователем novlev Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 22 октября, 2013 Опубликовано 22 октября, 2013 · Жалоба Замечательно, завтра посмотрю, сегодня всё, Хотя можно и по быстрому: if (var_EXCAUSE==0x27) { sprintf(s_debug,"Промах в CPLB при выборке команды"); fprintf(stderr, "%s\n", s_debug); } Теперь откройте супермега даташит и посмотрите, почему эта неприятность вдруг случилась. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novlev 0 23 октября, 2013 Опубликовано 23 октября, 2013 (изменено) · Жалоба Запустил код на демоборде - все работает. Оказывается она норм инициализирует озу. А если пристегнуть кастом борд xml к моей железяке - значения в регистры попадают, но в сд стате висит ошибка, т е озу фигово инициализировалась. Вопрос - в чем может быть причина такого поведения? Изменено 23 октября, 2013 пользователем novlev Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 23 октября, 2013 Опубликовано 23 октября, 2013 · Жалоба Вы же сами написали почему: >>адрес вылета - 0100002E, он вроде как для моего процессора находится в области "резерв". Читайте раздел: "Интерфейс внешней шины". А про ОЗУ мне ничего не известно, вчера Вы утверждали, что многократно его успешно оттестили. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novlev 0 23 октября, 2013 Опубликовано 23 октября, 2013 · Жалоба Вы же сами написали почему: >>адрес вылета - 0100002E, он вроде как для моего процессора находится в области "резерв". Читайте раздел: "Интерфейс внешней шины". А про ОЗУ мне ничего не известно, вчера Вы утверждали, что многократно его успешно оттестили. Этот адрес вылета не имеет значения, это плод криво залитого кода из-за фиговой инициализации айсом озухи, на реальной железяке инит код норм все делает, - телевизор же работал без сбоев. Сейчас картина уже другая, вылет по реальному адресу, 0х208 - это буду смотреть, что именно не нравится (на демо борде работал и на этом адресе). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Gradient 1 23 октября, 2013 Опубликовано 23 октября, 2013 · Жалоба Дорогой друг. Вы уж определитесь как-то более основательно. Я не телепат, и подсказать вам смогу предметно, если симптомы будут более конкретные. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novlev 0 23 октября, 2013 Опубликовано 23 октября, 2013 · Жалоба Дорогой друг. Вы уж определитесь как-то более основательно. Я не телепат, и подсказать вам смогу предметно, если симптомы будут более конкретные. Спасибо за участие в решениип роблемы, когда я определюсь - все заработает, к этому и иду. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
novlev 0 24 октября, 2013 Опубликовано 24 октября, 2013 (изменено) · Жалоба Проблема была в железе :) Гигагерцовый осмыслограф все показал и рассказал. Пара дорожек звенели, терминаторы были далеко от абонента. Вывод - надо внимательнее проверять шину на предмет отраженных сигналов. Напишу подробнее: в мурзилке на MT48LC8M16A2 есть строки "VDDQ Supply DQ power: Isolated DQ power on the die for improved noise immunity. VSSQ Supply DQ ground: Isolated DQ ground on the die for improved noise immunity." - вот в этом месте земля была через дроссель к основной подключена. В этом и была причина, убрав дроссель получили норм фронты. Изменено 24 октября, 2013 пользователем novlev Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться