реклама на сайте
подробности

 
 
10 страниц V  « < 4 5 6 7 8 > »   
Reply to this topicStart new topic
> Несколько вопросов по lpc176x
zltigo
сообщение Jun 4 2010, 16:22
Сообщение #76


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vallav @ Jun 4 2010, 07:13) *
А загрузка происходит так - бутлоадер...

Если речь идет не о неком неведомом бутлоадере, а о штатном загрузчике LPC, то все происходит не так, ибо начинается с того, что имеется аппаратная поддержка ремапа 256 байт векторов бутового загрузчика. Как работают вторичные загрузчики типа рекламируемого USB, лучше разбирать по исходным текстам, даже если они "бангалорские".


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
vallav
сообщение Jun 5 2010, 05:40
Сообщение #77


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977



Цитата(zltigo @ Jun 4 2010, 20:22) *
Если речь идет не о неком неведомом бутлоадере, а о штатном загрузчике LPC, то все происходит не так, ибо начинается с того, что имеется аппаратная поддержка ремапа 256 байт векторов бутового загрузчика. Как работают вторичные загрузчики типа рекламируемого USB, лучше разбирать по исходным текстам, даже если они "бангалорские".


В штатном конечно не так.
Штатный честно запускает пользовательскую прогу передавая управление по значению второго слова в флеше.
И, если стартап слинкован в ОЗУ ( против чего линкер Кейла не возражает ) прога естественно вешается.
Так как идет обращение к коду в ОЗУ, который появится только после того, как будет выполнен тот кусочек кода в ОЗУ, куда идет обращение.
Кривой бангалорский загрузчик эту проблему успешно разрешает, запуская программу по адресу начала таблицы прерываний.
( вопрос только в том, это случайность или сознательный ход ).

По частоте тактового генератора USB пока ответов нет, придется похоже самому проверять.
Но это будет не скоро.

Ну ладно, ответ на вопрос о тактовой частоте USB может быть малоизвестен, но почему нет ответов на вопрос о
времени записи/чтения файла в флешь контроллера через JTAG?
Ни у кого нет такого заливщика? Или цыфры стыдно обнародовать?

Еще вопрос.
Озаботился я тут дизассемблером кода Thumb-2.
Поиск привел:
1. К заявлению "крутых перцев" - мол код там очень простой и дизассемблер пишеься за пару часов.
2. К двум дизассемблерам ( ~1 Мбайт ), которые по описанию очень крутые но у меня работать с ними не получилось, не нашел, как в них
свой бинарник загрузить.
3. К супердизассемблеру ( ~30 Мбайт ) который после скачивания радосно сообщил, что работает только с электронным ключем.
4. Ну и небезизвестная IDA, плагин которой под именем HexRays умеет работать с Thumb-2 начиная с версий, датированных июнем 2010 года,
то есть выпущенных вчера. И стоит этот плагин всего навсего 1600 евро.

Вот такая вот веселая история.
Остается дизассемблер от Кейла, с которым пока не разобрался, как в него свой бинарник загрузить и заставить симулятор
шагать по этому бинарнику.
Порка получается только - в стартапе забить нужный код в область с абсолютным адресом ( в моем случае - 0x2000 ).
Забил 4 слова, посмотрел, работает. Но забивать таким образом 500 слов как то не вдохновляет.

Сообщение отредактировал vallav - Jun 5 2010, 05:50
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 5 2010, 07:14
Сообщение #78


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vallav @ Jun 3 2010, 16:42) *
У меня получилось - читается около секунды, пишется около 5 секунд.

Сильно сомневаюсь, что в LPC1000 зачем-то сильно ускорили запись во Flash и скрыли сей факт, но для LPC2000 времена записи во Flash нормировались и в режиме посектороного, т.е. неполного стирания только записть во Flash дожна занимать ~20*400ms + 400000/256*1ms что уже много больше намерянных "5 секунд". Сначала научитесь корректно делать оценки, а потом уже спрашивайте как там с JTAG, который, кстати, тоже работает очень на разных, в том числе и мегабитных скоростях.


Цитата(vallav @ Jun 5 2010, 08:40) *
По частоте тактового генератора USB пока ответов нет, придется похоже самому проверять.

Хотите маяться дурью вместо соблюдений рассчетных требований спецификаций - майтесь.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
vallav
сообщение Jun 5 2010, 08:21
Сообщение #79


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977



Цитата(zltigo @ Jun 5 2010, 11:14) *
Сильно сомневаюсь, что в LPC1000 зачем-то сильно ускорили запись во Flash и скрыли сей факт, но для LPC2000 времена записи во Flash нормировались и в режиме посектороного, т.е. неполного стирания только записть во Flash дожна занимать ~20*400ms + 400000/256*1ms что уже много больше намерянных "5 секунд". Сначала научитесь корректно делать оценки, а потом уже спрашивайте как там с JTAG, который, кстати, тоже работает очень на разных, в том числе и мегабитных скоростях.

Дык просто все было.
В тотал-коммандере - стер исходный файл с USB-диска.
Нашел файл размером в 400 килобайт, выбрал копи на USB-диск, нажал - поехали - и засек, сколько времени ехали.
Получилось - 5 секунд.
Вы забыли привести цифры - сколько времени пишется и сколько стирается по JTAG.
Или просто не знаете?
А тогда вся эта Ваша философия "крутого перца с горячими ушами" - зачем?
Я знаю, что Вы - крутой перец, и что уши у Вас не холодные...



Цитата(zltigo @ Jun 5 2010, 11:14) *
Хотите маяться дурью вместо соблюдений рассчетных требований спецификаций - майтесь.


Так я же пояснил = зачем.
Если USB спокойно пашет при отклонении тактовой на +-10%, то в приборах, которые для себя - использовать IRC.
В приборах, которые для Вас - естественно все строго по спецификации...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 5 2010, 08:59
Сообщение #80


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vallav @ Jun 5 2010, 11:21) *
Вы забыли привести цифры - сколько времени пишется и сколько стирается по JTAG.
Или просто не знаете?

Нет, просто опять не дооценил степень Вашей некометентности sad.gif. Для тех, кто не способен к самостоятельному восприятию и анализу информации, сообщаю, что любой LPC загрузчик, в том числе и JTAG, использует открытый IAP интерфес штатного загрузчика для работы с Flash и в части записи-стирания все равны. Отличия имеют место быть в тактовой частоте контроллера, качестве самого загрузчика и размерах блоков которыми он оперирует, ну и только один из факторов, который при многомегабитных (12..25Mbit частоты интерфейсов JTAG/SWD у Cortex-ов ) скоростях передачи уже далеко не самый определяющий, это скорость интерфейса передачи этой самой информации загрузчику.
При 12Mhz тактовой данные по JTAG загружаются со скоростью 720Kbytes/s
Цитата(vallav @ Jun 5 2010, 11:21) *
В тотал-коммандере...

Вот я и говорю - учитесь сначала корректно делать оценки.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
vallav
сообщение Jun 5 2010, 11:29
Сообщение #81


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977



Цитата(zltigo @ Jun 5 2010, 12:59) *
При 12Mhz тактовой данные по JTAG загружаются со скоростью 720Kbytes/s

Вот я и говорю - учитесь сначала корректно делать оценки.


Да... просто привести - у меня 400 Кбайтный файл заливается в контроллер по JTAG xx секунд, читается из контроллера yy секунд -
жаба душит?

Сообщение отредактировал rezident - Jun 6 2010, 21:35
Причина редактирования: Нарушение п.3.4 Правил форума.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 5 2010, 12:10
Сообщение #82


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(vallav @ Jun 5 2010, 14:29) *
жаба душит?

Нет, просто характер не позволяет давать глупые ответы, даже на глупейше-пустейшие вопросы. Ну а нормальные развернутые ответы, Вы воспринимать хронически не способны. В общем мне так "общаться" окончательно надоело. Ответов больше не будет.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
vallav
сообщение Jun 5 2010, 12:21
Сообщение #83


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977



Цитата(zltigo @ Jun 5 2010, 16:10) *
Нет, просто характер не позволяет давать глупые ответы, даже на глупейше-пустейшие вопросы. Ну а нормальные развернутые ответы, Вы воспринимать хронически не способны. В общем мне так "общаться" окончательно надоело. Ответов больше не будет.


Понятно. Значит Вы - fabless, железа у Вас нет а все - только теоретически...
Бывает...
Неужели эту ветку не читает кто либо, у кого есть lpc1768 подключенная к JTAG_у?
Go to the top of the page
 
+Quote Post
rezident
сообщение Jun 5 2010, 15:55
Сообщение #84


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(vallav @ Jun 5 2010, 18:21) *
Неужели эту ветку не читает кто либо, у кого есть lpc1768 подключенная к JTAG_у?
Ну у меня есть. На работе лежит starterkit-овская плата SK-MLPC1768 и MT-Link. Только после перечитывания ветки особого желания делать что-либо специально для вас я не испытываю. Вдруг полученные циферки не подойдут к вашим убеждениям и я же еще и виноват останусь laughing.gif ИМХО документации от производителя нужно можно чаще всего верить. А если вы не умеете ее читать и понимать, то нужно учится этому. "Терпение и труд все перетрут" wink.gif
Go to the top of the page
 
+Quote Post
igorsk
сообщение Jun 5 2010, 23:17
Сообщение #85


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 22-03-10
Пользователь №: 56 131



Цитата(vallav @ Jun 5 2010, 06:40) *
4. Ну и небезизвестная IDA, плагин которой под именем HexRays умеет работать с Thumb-2 начиная с версий, датированных июнем 2010 года,
то есть выпущенных вчера. И стоит этот плагин всего навсего 1600 евро.

Плагин нужен только для декомпиляции кода в C. Для простого дизассемблирования достаточно самой иды.
Go to the top of the page
 
+Quote Post
vallav
сообщение Jun 6 2010, 05:45
Сообщение #86


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977



Цитата(rezident @ Jun 5 2010, 19:55) *
Ну у меня есть. На работе лежит starterkit-овская плата SK-MLPC1768 и MT-Link. Только после перечитывания ветки особого желания делать что-либо специально для вас я не испытываю. Вдруг полученные циферки не подойдут к вашим убеждениям и я же еще и виноват останусь laughing.gif ИМХО документации от производителя нужно можно чаще всего верить. А если вы не умеете ее читать и понимать, то нужно учится этому. "Терпение и труд все перетрут" wink.gif


То есть, если по описанию одно а в натуре другое, то сомневаться в правильности описания - не стоит?
Вот пробовал в симуляторе Кейла - по ресет CPU он ставит sp - значение первого слова из флеша, ip - значение второго слова из флеша.
Меняю значение sp на большее. Запускаю, в main приходит с sp, близким к значению из флеша.
Так где на самом деле инициализируется стек? Аппаратно при сбросе? Или все же кодом инициализации?
Я исходно верю описанию. Но когда в железе получается по другому, я начинаю верить железу.

Или вот эта ахинея с проверкой наличия пользовательской программы.
Генератор пользовательских программ - Кейл - на эту проверку откровенно забил.
А вот изготовители заливщиков этим озаботились и тупо меняют 8 слово флеша независимо от того, что во флеш заливается.
Я вначале в это просто не поверил, думал - разигрывают...
Получается, если я заливаю работающую прогу от Кейла но не правильным заливщиком - она проверку не пройдет и не запустится.
Если я заливаю любую хню, но правильным заливщиком, она проверку пройдет и запустится.
А если я в Кейле слинковал прогу так, что у меня в флеше всего 4 вектора в таблице ( что необходимо для запуска ) а вся таблица слинкована в ОЗУ,
заливщик прогу испортит ( так как в 8 слове флеша - код загрузки ) и прога запустится и повесится.
Полагаете это - нормально?

Или с тактовой USB.
Почему то UART, у которого установки фазы клока по синхроимпульсу ( старту ) должно хватать на 10 тактов - от IRC работает, точности хватает.
А USB, у которой синхроимпульсы максимум через 5 тактов и есть преамбула для настройки тактового генератора ( а не просто установка
фазы клока ) точности IRC не хватает... Все равно - должен верить описанию - USB с IRC - низзя.
Кстати, FTDI - можно а вот мне все равно - низзя...

С цифрами по скорости заливки/чтения флеши через JTAG.
Я на самом деле не знаю, какие они.
Я знаю только, что заливать 32 Килобайта настолько долго, что выгоднее перегнать прогу в ОЗУ и ставить точки остановки там, чем ставить
их перезаливкой проги в флешь. Или это делается из экономии - чтобы не использовать ненароком отведенный лимит в 100 000 заливок...
Если стыдно их приводить - то зачем эта вся философия по поводу температуры моих ушей?




Цитата(igorsk @ Jun 6 2010, 03:17) *
Плагин нужен только для декомпиляции кода в C. Для простого дизассемблирования достаточно самой иды.


Как то не хочется ставить 100 мегабайтную прогу только для того, чтобы она делала простое дизассемблирование кода.
Да и встречал в инете, что IDA старых версий не все Thumb-2 кода берет.
Но когда дизассемблер Кейла меня достанет, придется ставить IDA.

Кстати, можно ли сделать так, чтобы при запуске симулятора он не пытался добраться до main а останавливался на первом шаге.
Если он до main не добрался а вылетел по дороге ( ну проги у меня такие ) то он как то странно работает.
Ресетишь CPU, ставищь IP на начало кода инициализации - код выполняется а IP остается неизменным.
Пришлось ставить по дороге ловушку, покрутившись в которой симулятор выподает в меню. И вот тогда по коду ходит.
И с загрузкой своего бинарника в дизассемблер. Неужели низзя?
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jun 6 2010, 08:33
Сообщение #87


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(vallav @ Jun 6 2010, 09:45) *
Я знаю только, что заливать 32 Килобайта настолько долго, что выгоднее перегнать прогу в ОЗУ и ставить точки остановки там, чем ставить
их перезаливкой проги в флешь.

32 килобайта заливаются за несколько секунд. Откуда бредни про "настолько долго"?

Цитата
Кстати, можно ли сделать так, чтобы при запуске симулятора он не пытался добраться до main а останавливался на первом шаге.

Загляните наконец в настройки проекта "Options for target..." и на вкладке Debug на стороне симулятора (левая половина) уберите галку с "Run to Main()".
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 6 2010, 09:14
Сообщение #88


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Контрольные вопросы для Принца Флоризеля, который, как известно, знал все заранее и любое решение находил
несколько ранее собеседников:
1. Сколько указателей стека у LPC176x (Cortex-M3)?
2. Какой из них инициализируется аппаратно?
3. Есть-ли какие либо ограничения на софтовую инициализацию указателей стека?
4. Какие действия выполняются в startup до запуска main()?
5. Функция __main() в default startup KEIL это то-же самое, что и main()?
6. Сколько записей в таблице векторов Cortex-M3 жестко отведено под нужды ядра?
7. Какие утилиты входят в классический набор утилит binutils, каковы их аналоги в пакете от KEIL?
8. Что умеет делать утилита fromelf из комплекта поставки KEIL?

Ну и вообще начинающим будет на мой взгляд небесполезно ответить для себы на вопросы в контексте последних постов.
Флоризель, само собой, все и так знает, ну а с другими форумчанами можно продолжить, если потребуются уточнения.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
vallav
сообщение Jun 6 2010, 12:12
Сообщение #89


Частый гость
**

Группа: Участник
Сообщений: 197
Регистрация: 8-04-05
Пользователь №: 3 977



Цитата(sonycman @ Jun 6 2010, 12:33) *
32 килобайта заливаются за несколько секунд. Откуда бредни про "настолько долго"?


Дык я же объяснил.
Существует такая правктика - для отладки кусок проги переносить в ОЗУ.
Чтобы отладка шла быстрее. Вроде ограничение в скорости там одно - время перезаливки проги с новыми точками останова.
Или причина переноса отладки в ОЗУ - другая?
И почему сразу - бредни?
Может лучше использовать - заблуждения?

Цитата(sonycman @ Jun 6 2010, 12:33) *
Загляните наконец в настройки проекта "Options for target..." и на вкладке Debug на стороне симулятора (левая половина) уберите галку с "Run to Main()".


Спасибо.
А как по поводу заливки своего бинарника и внесение исправления в дизассемблируемый код?
inline asstmbly у меня все время серая.
И как отключить перескок полоски скроллинга на панели дизассемблера - больно хлопотно ставить адресс конкретный адресс когда шаг установки в 300 байт.



Контрольные вопросы для Принца Флоризеля, который, как известно, знал все заранее и любое решение находил
несколько ранее собеседников:
1. Сколько указателей стека у LPC176x (Cortex-M3)?

Два.

2. Какой из них инициализируется аппаратно?

Ни какой. Но один из них инициализируется в коде инициализации.
Щас гляну, как он называется - во - MSP.

3. Есть-ли какие либо ограничения на софтовую инициализацию указателей стека?

Ага. Его нелзя ставить на начало ОЗУ. И туда, где нет ОЗУ.
И выравнивать надо.

4. Какие действия выполняются в startup до запуска main()?

Ой, много. Толко вот попасть на код инициализации не всегда получается.
Вы про линкер уже прочли? Умеете модули линковать в ОЗУ?

5. Функция __main() в default startup KEIL это то-же самое, что и main()?

Не а. Это и есть начало кода инициализации.
В стартапе на нее только ссылка. Сама она от линкера.

6. Сколько записей в таблице векторов Cortex-M3 жестко отведено под нужды ядра?

Четыре первых. Реально используется два первых при запуске проги.

7. Какие утилиты входят в классический набор утилит binutils, каковы их аналоги в пакете от KEIL?

Без понятия.

8. Что умеет делать утилита fromelf из комплекта поставки KEIL?

Бинарник для заливки посторонними заливщиками.

Ну и вообще начинающим будет на мой взгляд небесполезно ответить для себы на вопросы в контексте последних постов.
Флоризель, само собой, все и так знает, ну а с другими форумчанами можно продолжить, если потребуются уточнения.

Надеюсь Вас не затруднит дать на свои вопросы правильные ответы?
Или как всегда - характер не позволяет давать глупые ответы, даже на глупейше-пустейшие вопросы...

Сообщение отредактировал rezident - Jun 6 2010, 21:33
Причина редактирования: Удалено дублировние текста.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jun 6 2010, 12:26
Сообщение #90


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Ответы на все вопросы, кроме первого и частично третьего, данные vallav не верные, если не считать "Ой много" и "Без понятия", которые вообще не ответы. Особенно заслуживает внимания шедевр "Сама она от линкера" smile.gif. Примерно так-же объясняли множество вещей первобытные люди - "она от бога", и точка. Остальное соответственно домысливали, как умели, измышляя легенды и мифы.
Продолжаем опрос:
1. Сколько в ядре Corteх-M3 поддерживается Breakpoint и Watchpoint.
2. Что такое за Flash Patch механизм?
3. Зачем при наличии 1 и 2 пунктов нужна "перезаливка проги с новыми точками останова"


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

10 страниц V  « < 4 5 6 7 8 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 18:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01509 секунд с 7
ELECTRONIX ©2004-2016