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

 
 
11 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> Вливаюсь в коллектив ARMоводов, жду советов и дележа опытом
klen
сообщение Jul 19 2006, 21:20
Сообщение #61


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(zltigo @ Jul 20 2006, 01:09) *
Цитата(klen @ Jul 19 2006, 23:34) *

Вопрос остается один - можно ли так делать (тость ведь не дураки писаои стартовыкод и ошибки внем не должно быть) и как делать правильго?

Не дураки и посему для автономности кода поставили заглушки на все.
Заглушку на точку входа по Reset просто следовало дезактивировать (там и ключик черным по белому)перед применением БОЛВАНКИ startup в реальной жизни. В этом startup еще заглушек полно :-)
и ининциализаций разных, типа контроллера внешней шины начисто отсутствующего у 2103 :-))
Короче читать надо перед употреблениеу "унутрь".....

Ну, как правило, после мигания светодиодом дольшая часть проблем кончается :-), ну разве только
RS232 и консоль поднять (не долюбливаю внутрисхемные отладчики за мелочность - все больше по старой прывычке со своей отладосной консолью..)


А это че.... значит было сделано правильно НО НЕРАБОТАЛО! потом я носом по ассемблеру дорыл то этой "заглушки" и разглушил ее? аригинальный подход cranky.gif
еслиб у меня опыта небылобы, ну например типа чувак купил плату кабель и книжку - ябы месяц искал бы. Я то думал что "все подключено" а тут тако и главное ВСЕМОЛЧАТ КАК ПАРТИЗАНЫ, не верю что никто не знал куда меня носом тыкнуть.
А насчет "почитать cпереди" это очень верно подмечено.. но я достойный сын своего русского племени - сначала делаем (неработает) потом думаем почему не работает(всервно не работает) а только потом читаем даташит.

Нада статью написать и пример с использованием всех переферийнызх модулей под плату эту и выложить на сайт. А то под нее демок Olimex не наморочил, учитывая дешевезну(читай привлекательность) я думаю она станет популярно среди кексов подобных мне.

А с дефайном STARTUP_FROM_RESET я конкретно лоханулся... ктож знал что кругом засада blink.gif

Сообщение отредактировал klen - Jul 19 2006, 21:24
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 19 2006, 21:34
Сообщение #62


Гуру
******

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



Цитата(klen @ Jul 20 2006, 00:20) *
а тут тако и главное ВСЕМОЛЧАТ КАК ПАРТИЗАНЫ, не верю что никто не знал куда меня носом тыкнуть.

Ну насчет "молчат", это зря - скоро 4 страница постов пойдет. Ну а то, что Вы там какой-то левый
и избыточно толстый пример от не слишком (по моим наблюдениям) популярного (Вы да goodwin) в этих местах Rowley компилить пытаетесь, так тут уж Вам это вообще никто ни словом ни полсловом не навязывал :-)


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 19 2006, 21:47
Сообщение #63


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Спасибо за советы и помощь. Завтра продолжу.
Go to the top of the page
 
+Quote Post
goodwin
сообщение Jul 19 2006, 21:52
Сообщение #64


Местный
***

Группа: Свой
Сообщений: 481
Регистрация: 1-08-05
Пользователь №: 7 267



Ну насчет партизанского молчания - это зря... Ты как раз среди участников этой конфы может являешься пионером в освоении CW 1.6 smile.gif
В CW 1.5 все было в "одном стакане" и у меня заработало сразу.
В 1.6 примеры приходится качать отдельно. Сейчас как раз пробовал - та-же бодяга. Пробовал "Flash Release" - тоже не работает.
И вообще что-то мне не шибко комфортно в этой среде, типа такого smile.gif : http://www.itcenter.com.ua/WORD.gif
Плюс еще куча всяких рычажков в опциях проекта. Думаю авторы для "Flash Release" просто гдето пропустили этот #define второпях...
Go to the top of the page
 
+Quote Post
goodwin
сообщение Jul 19 2006, 22:03
Сообщение #65


Местный
***

Группа: Свой
Сообщений: 481
Регистрация: 1-08-05
Пользователь №: 7 267



Цитата(zltigo @ Jul 20 2006, 00:34) *
Ну насчет "молчат", это зря - скоро 4 страница постов пойдет. Ну а то, что Вы там какой-то левый
и избыточно толстый пример от не слишком (по моим наблюдениям) популярного (Вы да goodwin) в этих местах Rowley компилить пытаетесь, так тут уж Вам это вообще никто ни словом ни полсловом не навязывал :-)


Дык я тоже только начинаю щупать ARM, и CrossWorks поставил только вчера с подачи klen smile.gif

Что понравилось - с вигглером работает _очень_ шустро (видимо из-за своего быстрого драйвера).
Не нравится шибко "пестряще пестрая пестрота" smile.gif И еще так умудрились затормозить J-Link, что он работает даже медленнее вигглера.
v1.6 видимо еще сыровата - сразу ощущается после v1.5, даже на поверхностный взгляд...
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 20 2006, 03:55
Сообщение #66


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



"Начинаю вливатся: ДЕНЬ ТРЕТИЙ"

Третий день начался с того что ни на одной из моих машин я нимагу препрошить FLASH.
Произошло это после того как я определил фалг STARTUP_FROM_RESET(это приводит к тому что полсе апаратного ресета процессор выполняет код модуля Crt0 и далее main() а не зацикливается).

В файле Philips_LPC210X_Startup.s есть по этому поводу коментарий (который я не прочитал и долго муался и мучал Вас с вопросом почему у меня неработает после ресета ):


Код
..............
* STARTUP_FROM_RESET
*
*   If defined, the program will startup from power-on/reset. If not defined
*   the program will just loop endlessly from power-on/reset.
*
*   This definition is not defined by default on this target because the
*   debugger is unable to reset this target and maintain control of it over the
*   JTAG interface. The advantage of doing this is that it allows the debugger
*   to reset the CPU and run programs from a known reset CPU state on each run.
*   It also acts as a safety net if you accidently download a program in FLASH
*   that crashes and prevents the debugger from taking control over JTAG
*   rendering the target unusable over JTAG. The obvious disadvantage of doing
*   this is that your application will not startup without the debugger.
*
*   We advise that on this target you keep STARTUP_FROM_RESET undefined whilst
*   you are developing and only define STARTUP_FROM_RESET when development is
*   complete.
.......
reset_handler_address:
#ifdef STARTUP_FROM_RESET
  .word reset_handler
#else
  .word reset_wait
#endif
  ....

  ....
  b _start

#ifndef STARTUP_FROM_RESET
reset_wait:
  b reset_wait
#endif


Если я правильно понял то в коментарии написано что JTAG не умеет после аппаратного ресета управлять процессором поэтому вместо ресета он через TAP обнуляет все регистры и все что соответствует состоянию "аппаратный сброс" и запускает его , и типа проц думает что он реально заресетился.
А вот что там про FLASH написано я не понял , блин, знаю английский, но тут жопа - все слова знаю а смысл не могу понять.
Пояснте тонкости этого вопроса и все что тут связано.

CW выдает лог:
Код
Executing reset script FLASHReset()
Loading target script file C:\Program Files\Rowley Associates Limited\CrossWorks for ARM 1.6\targets\Philips_LPC210X\Philips_LPC210X_Target.js
Downloading “Loader.elf” to Macraigor Wiggler (20 Pin)
  Programming completed in 312 ms — 15,961 bytes/sec
    Programming 4.8 KB of addresses 40000000 — 40001373
Download complete
Verifying “Loader.elf” on Macraigor Wiggler (20 Pin)
  Verifying completed in 203 ms — 24,532 bytes/sec
    Verifying 4.8 KB of addresses 40000000 — 40001373
Verify complete

ДАЛЕЕ пишет что таймаут на сомм порту JTAG и FLAS не шьет  :(


Налицо факт что я стото испортил в самом контроллере так как на обоих машинах перестало прошиватся FLASH.
Go to the top of the page
 
+Quote Post
Старый Бабай
сообщение Jul 20 2006, 04:50
Сообщение #67


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

Группа: Свой
Сообщений: 104
Регистрация: 5-12-05
Из: Екатеринбург
Пользователь №: 11 823



Народ кто может поделится таблеткой к CrossWorks 1.6
Хочу его попробовать.
Доступа к "своим" пока нету
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 20 2006, 05:25
Сообщение #68


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(Старый Бабай @ Jul 20 2006, 08:50) *
Народ кто может поделится таблеткой к CrossWorks 1.6
Хочу его попробовать.
Доступа к "своим" пока нету

положил
http://www.klen.org/Files/Dolgoletie_dla_CW_1.6.rar
Go to the top of the page
 
+Quote Post
Старый Бабай
сообщение Jul 20 2006, 05:39
Сообщение #69


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

Группа: Свой
Сообщений: 104
Регистрация: 5-12-05
Из: Екатеринбург
Пользователь №: 11 823



Цитата(klen @ Jul 20 2006, 08:25) *
Цитата(Старый Бабай @ Jul 20 2006, 08:50) *

Народ кто может поделится таблеткой к CrossWorks 1.6
Хочу его попробовать.
Доступа к "своим" пока нету

положил
http://www.klen.org/Files/Dolgoletie_dla_CW_1.6.rar

Большой рахмат, то есть спасибо a14.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 20 2006, 06:32
Сообщение #70


Гуру
******

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



Цитата(klen @ Jul 20 2006, 06:55) *
...что JTAG не умеет после аппаратного ресета управлять процессором поэтому вместо

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

Зашейте ему обратно желеаемое через RS232 или через какой-либо другой прошивальщик.
И подумайте над выбором инструмента :-( для нормальной работы.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 20 2006, 07:48
Сообщение #71


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(klen @ Jul 20 2006, 06:55) *
"Начинаю вливатся: ДЕНЬ ТРЕТИЙ"

Третий день начался с того что ни на одной из моих машин я нимагу препрошить FLASH.
Пришел на работу, прочитал вчерашние сообщения и только рука потянулась написать предупреждение, как похоже вы уже "наступили" :-) Я недавно по дурости первыми же командами инициализации периферии перевел ноги JTAG в состояние обычных ног. А поскольку залил сразу во флешку то получил мигающий светодиод и мертвый JTAG. Пришлось подключить COM-порт, ногой P0.14 принудительно стартануть загрузчик, стереть через загрузчик флешку и только после этого JTAG ожил. Может вас тоже спасет стирание через загрузчик? А про инструмент соглашусь с zltigo - ИАР гораздо дружелюбнее. Там все работает и отладка начинается без всяких заглушек.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 20 2006, 08:17
Сообщение #72


Гуру
******

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



Цитата(Сергей Борщ @ Jul 20 2006, 10:48) *
Я недавно по дурости первыми же командами инициализации периферии перевел ноги JTAG в состояние обычных ног.

Этот случай "хуже", поскольку толи конкретный отладчик, толи этот отлдадчик с простейшим Wiggler-ом
просто не умеет остановить работающий девайс, кроме как через трюк с loop...

Цитата
This definition is not defined by default on this target because the
debugger is unable to reset this target and maintain control of it over the
JTAG interface.


Это не ошибка, это "не лечится" - отладились, зашили и больше никогда не трогайте :-)


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 20 2006, 08:42
Сообщение #73


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(Сергей Борщ @ Jul 20 2006, 11:48) *
Пришел на работу, прочитал вчерашние сообщения и только рука потянулась написать предупреждение, как похоже вы уже "наступили" :-) Я недавно по дурости первыми же командами инициализации периферии перевел ноги JTAG в состояние обычных ног. А поскольку залил сразу во флешку то получил мигающий светодиод и мертвый JTAG. Пришлось подключить COM-порт, ногой P0.14 принудительно стартануть загрузчик, стереть через загрузчик флешку и только после этого JTAG ожил. Может вас тоже спасет стирание через загрузчик? А про инструмент соглашусь с zltigo - ИАР гораздо дружелюбнее. Там все работает и отладка начинается без всяких заглушек.


К сожалению я еще датащит не очень читал.
Я правильно понимаю
1. что нужно теперь сделать:
--а. взять НЕХ собранного проекта который "неработал без отладчика".
--б. прописать по четырнадцатому адресу нули .
--в. подключть RX/TX UART к компу и настроить утилиту програмирования Philips
--г. загрузить HEX в утилиту програмирования Philips которая сама посчитает сигнатуру
--д. опустить P0.14 на землю перемычкой.
--е. кнопка ресет.
--ё. утилиту програмирования Philips cвяжется с LPC и появится зашиить образ.
--ж. отпустить P0.14 и наслаждаться работой JTAG
2. все это косяки отладчика-прошивальшика (типа он так интересно сделан)
3. существуют утилиты которыми можно шить-читать через виглер и не иметь этих сложностей. Если да то тыкните носом, желательно GNU.
4. Загрузчик можно перепрошить, по умолчению он залит при изготовлении Philips и имеет стандартную функциональность - тоесть проверку сигнатуры, лапки P0.14. Исправив код собрав и залив его я могу изменить логику загрузчика.

чем отличается прошивание загрузчика и пользовательского кода? можно основную идею этого процесса.

Я вот всетаки не понял каким образом отключился JTAG? код был изменен всего в одной инструкции

А CW - это временная мера - чтоб быстро изучить. Далее все на свободном софте буду делать, чего не хватит сам напишу. С IAR у меня соцсоревноване в плане качества кодогенирации, у него свой компиллер у мне GCC которым я со товарищи допиливыем. Кстате по AVR IAR C компилятор уже не лучше GCC, местами один лучше другого и наоборот. Руки чешутся на ARM порт , но тут как я бегло посмотрел все очень сложно, нада "трогать". Для начала можно попробывать сделать поддержку ораотчиков по команде SWI #a как в кейле, это мне кажется не сложно , а работать будет с gcc приятней, вощем посмотрим.

Сообщение отредактировал klen - Jul 20 2006, 09:01
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 20 2006, 09:47
Сообщение #74


Гуру
******

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



Цитата(klen @ Jul 20 2006, 11:42) *
Я правильно понимаю
1. что нужно теперь сделать:
--а. взять НЕХ собранного проекта который "неработал без отладчика".
--б. прописать по четырнадцатому адресу нули .
--в. подключть RX/TX UART к компу и настроить утилиту програмирования Philips
--г. загрузить HEX в утилиту програмирования Philips которая сама посчитает сигнатуру
--д. опустить P0.14 на землю перемычкой.
--е. кнопка ресет.
--ё. утилиту програмирования Philips cвяжется с LPC и появится зашиить образ.
--ж. отпустить P0.14 и наслаждаться работой JTAG

-a Да
-b Без разницы
-v Да и далее все да


Цитата
2. все это косяки отладчика-прошивальшика (типа он так интересно сделан)

Других вариантов не видать...

Цитата
3. существуют утилиты которыми можно шить-читать через виглер и не иметь этих сложностей. Если да то тыкните носом, желательно GNU.

Масса разных стественно существует, нвчните поиск с "родных". Точнее не скажу, поскольку меня от
Wiggler сильно стошнило и предпочел на первых порах вообще без внутрисхемного обходится.

Цитата
4. Загрузчик можно перепрошить, по умолчению он залит при изготовлении Philips и имеет стандартную функциональность - тоесть проверку сигнатуры, лапки P0.14. Исправив код собрав и залив его я могу изменить логику загрузчика.

Можно. А зачем?

Цитата
чем отличается прошивание загрузчика и пользовательского кода? можно основную идею этого процесса.

Через JTAG, если подгружаемый прошивальщик НЕ ПОЛЬЗУЕТСЯ IAPом Bootloadera - ничем не отличается. А если пользуется, но не прошить. Прошивка Flash у LPC не документирована, но если интересно - можете ковырять и переписывать. Вопрос ЗАЧЕМ? Хотите свой? Я для себя решил переход на свой загрузчик в начало вклеить, а IAP оставить.

Цитата
Я вот всетаки не понял каким образом отключился JTAG? код был изменен всего в одной инструкции

Да не отключился он, просто отладчик тупой не умеет правильно работать в произвольных условиях.


Цитата
С IAR у меня соцсоревноване в плане качества кодогенирации, у него свой компиллер у мне GCC которым я со товарищи допиливыем. Кстате по AVR IAR C компилятор уже не лучше GCC, местами один лучше другого и наоборот. Руки чешутся на ARM порт , но тут как я бегло посмотрел все очень сложно, нада "трогать". Для начала можно попробывать сделать поддержку ораотчиков по команде SWI #a как в кейле, это мне кажется не сложно , а работать будет с gcc приятней, вощем посмотрим.

Ну пробуйте соревноваться. Надеюсь не будет сему уготована обычная судьба некомерчесского продукта :-(. Ну а кодогенерация дело темное - на данный момент явных лидеров нет и не будет.
А соревноваться, на ARM платформе, придется и с Keil/ARM.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
klen
сообщение Jul 20 2006, 11:57
Сообщение #75


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Все просто чудненько!
Сделал описанные действия, все завелось с полоборота.
Загрузка по UART это здорово. Максимальная скорость которой умеет филипсовский прошивальщик 115к - довольно быстро, нада попроывать размотать на побольше - FT2232 умет гнать 921.6к , осталось узнать какую скорость имеет само прошивание ячеек флеша.

Получается что я правильно сыкономил - пришлось по бырому преходник на FT2232 спаять. Теперь у меня кроме JTAG каеля имеется и "USB программатор" w00t.gif


Теперь попроую давно желаймую девайсину сделать - квадратурный приемник. Судя по симулятору можно будет на float успеть демодулировать сигнал в полосе порядка 10кГц. Симулятор сказал что квадратурное детектирование с представлением данных в float и стандартной библиотечной sqrt() потребует 2825 тактов что на частоте 60 мГц процессора позволит ему прокачать с АЦП до выходного порта значение полученной фазы и амплитуды в темпе ~21,2 КВыборок. Все начальники на всех моих работах ушли в отпуск - займуська я этим, никто не мешает.

Ну вот, вроде теперь начинаю ориентироватся "как в этом лесу живут звери".

Всем нечеловеческое спасиба за помощь. Былаб возможность всем встретится пивом угостил бы.
Go to the top of the page
 
+Quote Post

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

 


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


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