По результатам проектирования одного устройства на с5505 появилась следующая информация.
Во встроенном загрузчике данного процессора присутствует ошибка, приводящая к возможной неработоспособности загрузки процессора из NOR-flash. Поэтому рецепт, описанный здесь может не работать.
И так, первым устройством, из которого загрузчик процессоров TMS320C55xx пытается загрузиться, является NOR-flash с 16-битным интерфейсом данных (например, PC28F128P30TF65). Как следует из описания работы загрузчика, при старте он предполагает, что флэш находится в режиме чтения, читает из неё сигнатуру образа прошивки, а затем и весь образ прошивки.
Но оказалось, что перед началом чтения данных загрузчик записывает во флэш команду для ввода данной микросхемы в режим чтения данных. Этой командой является число 0x00ff по адресу 0x0000.
Однако, на самом деле, и это видно по сигналам на интерфейсе, записывается число 0x000f и это, судя по всему, банальная ошибка "копипасты". Это неправильная команда, и на разных микросхемах она может либо не влиять на работу флэш-памяти, либо приводить к входу флэш-памяти в режим чтения статуса, после чего загрузчик образ прошивки прочитать уже не может, и загрузка из NOR-flash становится невозможна.
На отладочной плате EVM5515 всё работает отлично, но при использовании немного другой модели NOR-flash загрузка перестает работать.
На текущий момент errata на с5505 датируются летом 2010 года. И это очень грустно...
На форуме Texas Instruments e2e коллега ruzz также разъясняет ситуацию. Со стороны TI никаких комментариев не последовало.
С горячим приветом индусским программистам.
Здравствуйте как с вами связаться? для того чтобы поговорить о TMS320
ОтветитьУдалитьЗдравствуйте! А не встречался ли Вам где-нибудь исходный код загрузчика С5505/VC5515 ? Понимаю, что вероятность очень близка к 0, но все же :)
ОтветитьУдалитьИсходный код, скорее всего, написан на ассемблере.
УдалитьЕсли есть отладчик, в Code Composer Studio можно считать дамп памяти из ROM, где лежит загрузчик, потом его разбирать.
Кстати, описанный в статье "глюк", как оказалось, на самом деле "фича": у разных флэш немного отличаются команды, а загрузчик рассчитан на набор команд Intel/Micron. В TI на этот вопрос не ответили, что как бы намекает на качество поддержки.
По поводу дизасемблера - это понятно, но приятнее разбирать исходники с коментариями и именами переменных и меток))..просто у меня есть исходники загрузчиков для VC5416, VC5509A полностью, а для 5515 не удастся наверно где-нибудь утащить))..Про "фичу" спасибо, будем иметь в виду!
Удалить