vovovka 0 26 января, 2008 Опубликовано 26 января, 2008 (изменено) · Жалоба I2C немного криво реализован. сначала тоже так показалось, но потом разобрался и понял что, в принципе, реализация вполне приемлемая и работает стабильно. прилагающимися примерами от команды индусов пользоваться опасно, заструктурировано все до нельзя, а на верхнем уровне куча багов (проверять все используемое фирмваре лайбрари до низу!) это уже не по поводу самого процессора, такие явления сплош и рядом, в своих ошибках легче разобраться чем в чужих Изменено 26 января, 2008 пользователем OVladimir Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 26 января, 2008 Опубликовано 26 января, 2008 · Жалоба А вот это не очевидно. У ST явная политика на сворачивание документирования чипов. Они переходят на предоставление либ без подробного описания железа. Как это сейчас делается у OEM-щиков. Вот как тест, к примеру, скажите мне где в доке на STM32 указано от какого источника и с какой частотой идет клок на таймеры 2,3,4. это уже не по поводу самого процессора, такие явления сплош и рядом, в своих ошибках легче разобраться чем в чужих Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 26 января, 2008 Опубликовано 26 января, 2008 · Жалоба Они переходят на предоставление либ без подробного описания железа. Жутко раздражает, чувствуешь себя идиотом пытающимся восстановить облик мамонта по куче его окаменелых экскрементов :( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vovovka 0 27 января, 2008 Опубликовано 27 января, 2008 · Жалоба скажите мне где в доке на STM32 указано от какого источника и с какой частотой идет клок на таймеры 2,3,4. в data sheet и в референс мануал есть блок схема, там всё видно, плюс есть описание всех блоков словами. само описание выполнено в другом стиле нежели у эникспи, сложнее немного, но всё есть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 28 января, 2008 Опубликовано 28 января, 2008 · Жалоба Ну что ж, я считаю что вы не нашли. Элементы тактирования таймеров на блоксхеме либо не верны либо не описаны. Стиль это не какая-то мелочь, по опросам более чем для 50% разработчиков основным критерием в выборе кристалла является качество документации. Собственно эта документация отражает качество работы команды разработчиков чипа, т.е. косвенно определяет и качество самого чипа. А по опыту плохая дока на пару месяцев может спокойно задержать проект. Другое дело, что чипы для ST разрабатывают по аутсорсу, а доку пишут ихние индусы и видно очень ленивые. Т.е. чипы сами по себе не хуже других, но во тем кто их продает я не позавидую. в data sheet и в референс мануал есть блок схема, там всё видно, плюс есть описание всех блоков словами. само описание выполнено в другом стиле нежели у эникспи, сложнее немного, но всё есть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cebotor 0 28 января, 2008 Опубликовано 28 января, 2008 · Жалоба Жутко раздражает, чувствуешь себя идиотом пытающимся восстановить облик мамонта по куче его окаменелых экскрементов :( с одной стороны может это и полезно , например попользовавшись ератами атмела и филипса приходишь к выводу , что с таким количеством "особенностей" лучше бы сразу предоставили код которым можно пользоваться. предоставили софтварный интерфейс вместо хардварного так сказать. Только пhи этом нельзя оставлять прежнее отношение к этим апнотам - "это всего лишь пример , и поставляется as it is ". А так лично мне было бы все равно с какой абстракцией работать - с битом в кфг регистре , или с членом структуры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vovovka 0 28 января, 2008 Опубликовано 28 января, 2008 · Жалоба Элементы тактирования таймеров на блоксхеме либо не верны либо не описаны. RM0008 Reference manual STM32F101xx and STM32F103xx advanced ARM-based 32-bit MCUs на 48 странице "Clock tree" плюс описание самих таймеров: The counter clock can be provided by the following clock sources: ● Internal clock (CK_INT) ● External clock mode1: external input pin ● External clock mode2: external trigger input ETR ● Internal trigger inputs (ITRx):..... Или я чего-то не понимаю, но по-моему это именно та информация, а по поводу ошибок в ней хотелось бы поподробней. Ай, был в ST офисе в Паге целую неделю, ни одного индуса не видел Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 29 января, 2008 Опубликовано 29 января, 2008 · Жалоба А бесплатные j-таги не пробовали прикручивать? Недавно купили кит EKI-LM3S6965 Ethernet Evaluation Kit for IAR Embedded Workbench от Stellaris так вот на нем интегрирован JTAG в виде FTDI2232C, и есть фича при удерживании reset при включекнии он может работать наружу, пробовал подключать его к ARM7 но IAR пишет что LMFTDI поддерживает только Cortex-M3, похоже можно любой cortex подключить ( у меня к сожалению нет другого под рукой что бы проверить) сделали плату с STM32F103x но вывели только SWD наружу (это отдельная песня). К чему я это все - к тому что, можно взять обычный JTAG на FT2322C и указать IAR что это LMFTDI, одно только надо либо прошить eeprom штатной программой FTDI (прошивку еепром если надо выложу inf файлы для драйвера тоже все сдалено как описано в FTDI) либо подправить DLL чтобы цеплялась к первой попавшейся FTDI. Есть еще CodeSourcery вариант - там интересен GDB server (ради этого одного exe пришлось качать 400 метров CD к данному варианту кита) который цепялется на этот FTDI (ему уже прошивка еепром пофиг, специально проверил стер), но он работает только в режиме SWD (как раз для этого и нужа простенькая FPGA на плате в основном она делает следующее - одна из ног FTDI выбрает режим JTAG / SWD если JTAG то просто насквозь пропускает, а если SWD то FTDI TMS управляет направлением, а FTDI TDO и FTDI TDI объеденяются на SWDIO(TMS), а FTDI TCK так и идет на SWDCK(TCK)) Вот этот вариант, после долгих танцев с бубном ( пришлось отрезать TMS от LM3S6965 потому что в режиме SWD, даже если при включении держать кнопку все равно цепляется к внутреннему процу даже ресет пофиг это какой то прикол SWD) у меня подключился к STM32F103, но поругался что это не Stellaris и что флеш и еще что то не работает, но что Cortex-M3 все ок. Завтра продолжу эксперементы. А то IAR4 не поддерживает gdb server, а IAR 5.10 не поддерживает Cortex, вот приходится 5.11 качать Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vovovka 0 30 января, 2008 Опубликовано 30 января, 2008 · Жалоба Получил newsletter "The ST Microcontroller Newsletter - January/February 2008" сегодня, там написано: STM32 receives EG3 "editor's choice" award! Ну это так, просто Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cebotor 0 30 января, 2008 Опубликовано 30 января, 2008 · Жалоба Есть еще CodeSourcery вариант - там интересен GDB server (ради этого одного exe пришлось качать 400 метров CD к данному варианту кита) который цепялется на этот FTDI (ему уже прошивка еепром пофиг, специально проверил стер), но он работает только в режиме SWD (как раз для этого и нужа простенькая FPGA на плате в основном она делает следующее - одна из ног FTDI выбрает режим JTAG / SWD если JTAG то просто насквозь пропускает, а если SWD то FTDI TMS управляет направлением, а FTDI TDO и FTDI TDI объеденяются на SWDIO(TMS), а FTDI TCK так и идет на SWDCK(TCK)) Вот этот вариант, после долгих танцев с бубном ( пришлось отрезать TMS от LM3S6965 потому что в режиме SWD, даже если при включении держать кнопку все равно цепляется к внутреннему процу даже ресет пофиг это какой то прикол SWD) у меня подключился к STM32F103, но поругался что это не Stellaris и что флеш и еще что то не работает, но что Cortex-M3 все ок. а можно поподробнее: 1 что за пакет CodeSourcery и где его скачать (если на http://www.codesourcery.com/ , то где конкретно) 2 почему GDB сервер входящий в состав этого пакета работает только как SWD (правильно я понял ) 3 на какой плате стоит фпга и поподробнее какую глобальную функцию она выполняет - позволяет работать процу STM по SWD ? (он вроде и так для этого заточен). 4 правильно ли я понял что вам удалось прошивкой FTDI-ного епрома заставить иар видеть важ ЖТАГ как некий LMFTDI - про который он говорит что тот предназначет только для кортекса ? если да , то чем Вас такой вариант не устраивает ? мне удалось заставить работать олимексовский адаптер на FTDI c LPC2138 в ИАРЕ 5.11 через GDB сервер входящий в состав пакета OPENOCD. Однако в последней версии этого пакета нету скрипта настройки цели сервера GDB именно для cortexa. хотя текст этого скрипта есть в pdf хелпа к GDB (вероятно остался от старой версии, но будет ли работать пока не проверил ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 30 января, 2008 Опубликовано 30 января, 2008 · Жалоба а можно поподробнее: 1 что за пакет CodeSourcery и где его скачать (если на http://www.codesourcery.com/ , то где конкретно) это кастомизированный eclipse + gcc + поддержка жлеза я брал верисю которая лежит у luminary http://www.luminarymicro.com/products/ekc-...uation_kit.html EKC-LM3S6965-CD-148 LM3S6965 Evaluation Kit for CodeSourcery CD 2 почему GDB сервер входящий в состав этого пакета работает только как SWD (правильно я понял ) есть exe файл arm-stellaris-eabi-sprite.exe если его запустить с правильными параметрами он станет gdb server ом (параметра выбирающего SWD / JTAG нет да и устройство знает одно на FTDI ) 3 на какой плате стоит фпга и поподробнее какую глобальную функцию она выполняет - позволяет работать процу STM по SWD ? (он вроде и так для этого заточен). про FPGA я писал (FPGA на плате в основном она делает следующее - одна из ног FTDI выбрает режим JTAG / SWD если JTAG то просто насквозь пропускает, а если SWD то FTDI TMS управляет направлением, а FTDI TDO и FTDI TDI объеденяются на SWDIO(TMS), а FTDI TCK так и идет на SWDCK(TCK)) это даже не FPGA а CPLD LC4032V уже зашитая но логическая схема есть в даташите она очень простая, если делать клон можно обойтись рассыпухой схему можно скачать http://www.luminarymicro.com/products/ekc-...uation_kit.html UM-EK-LM3S6965-01 Stellaris LM3S6965 Evaluation Board User's Manual сейчас при коннекте с stm32f103 получается следующее arm-stellaris-eabi-sprite -l 3333 -a -v armusb:?speed=7 test arm-stellaris-eabi-sprite: CodeSourcery ARM Debug Sprite (Sourcery G++ 4.2-68) arm-stellaris-eabi-sprite: Target has now been reset arm-stellaris-eabi-sprite: Target is already halted arm-stellaris-eabi-sprite: Connected to Cortex-M3 successfully and passed all validation. arm-stellaris-eabi-sprite: E031: BusFault on access to memory arm-stellaris-eabi-sprite: error: Stellaris Flash access failure надо как то отключить опознование и работу с флешой. 4 правильно ли я понял что вам удалось прошивкой FTDI-ного епрома заставить иар видеть важ ЖТАГ как некий LMFTDI - про который он говорит что тот предназначет только для кортекса ? если да , то чем Вас такой вариант не устраивает ? Я стандартными средствами ( MProg 3.0a ) сичтал eeprom, потом его стер iar перестал коннектится и записал заново опять все заработало. (отlельной платы с FTDI у меня нет) но все зделано стандартно никакой хитрой защиты нет. У меня на плате выведен только SWD хочется его запустить Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 30 января, 2008 Опубликовано 30 января, 2008 · Жалоба Свершилось чудо! Я запустил STM32F103 с отладчиком JTAG на FTDI FT2232C и IAR 511 (gdb server) и openocd даже IAR flash loader заработал и прошил flash. Конфигурация такая STM32F103 <-> FT2232C <-> OpenOCD <-> IAR 5.11 только OpenOcd пришлось подправить в файле armv7m.c закоментарил 339 строчку /* ARMV7M is always in thumb mode, try to make GDB understand this if it does not support this arch */ /* armv7m->process_context->reg_list[15].value[0] |= 1; */ а то IAR честно воспринимал текущую позицию как PС+1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cebotor 0 31 января, 2008 Опубликовано 31 января, 2008 · Жалоба Конфигурация такая STM32F103 <-> FT2232C <-> OpenOCD <-> IAR 5.11 только OpenOcd пришлось подправить в файле armv7m.c закоментарил 339 строчку /* ARMV7M is always in thumb mode, try to make GDB understand this if it does not support this arch */ /* armv7m->process_context->reg_list[15].value[0] |= 1; */ а то IAR честно воспринимал текущую позицию как PС+1 Вы пересобрали OPENOCD как я понял? а после этого получившийся openocd-ftd2xx.exe запустили и у Вас заработал GDB сервер? а файл кфг откуда взяли если не секрет ? ведь запуск этого файла : openocd-ftd2xx.exe --file lpc2xxx_armusbocd.cfg (для ЛПЦ например ) или я не прав ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KRS 0 31 января, 2008 Опубликовано 31 января, 2008 · Жалоба Вы пересобрали OPENOCD как я понял? а после этого получившийся openocd-ftd2xx.exe запустили и у Вас заработал GDB сервер? а файл кфг откуда взяли если не секрет ? ведь запуск этого файла : openocd-ftd2xx.exe --file lpc2xxx_armusbocd.cfg (для ЛПЦ например ) или я не прав ? Да пересобрал OPENOCD скачал исходники последнии из svn... как собирать здесь описано http://openfacts.berlios.de/index-en.phtml...uilding_OpenOCD законфигурил как ./configure --enable-ft2232_ftd2xx --with-ftd2xx=/cygdrive/e/..... собрал. у меня один exe получился openocd.exe запускаю как openocd.exe -f test.cfg Конфигурационный файл взял отсюда http://openfacts.berlios.de/index-en.phtml...OpenOCD_scripts Главное там: #jtag scan chain #format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE) jtag_device 4 0x1 0xf 0xe jtag_device 5 0x1 0x1 0x1e #target <type> <startup mode> #target cortex_m3 <endianness> <reset mode> <chainpos> <variant> target cortex_m3 little run_and_halt 0 run_and_halt_time 0 30 working_area 0 0x20000000 16384 nobackup #flash bank <driver> <base> <size> <chip_width> <bus_width> flash bank stm32x 0x08000000 0x00010000 0 0 0 Ну я еще добавил что reset_config none у меня только TMS TCK TDI TDO подключены Ну естественно еще описание ftdi ( у меня кривое птому что я плату как отладчик использую), полный мой конфиг такой #daemon configuration telnet_port 4444 gdb_port 3333 #interface interface ft2232 ft2232_device_desc "Stellaris Evaluation Board A" ft2232_layout jtagkey ft2232_vid_pid 0x0403 0xbcd9 jtag_speed 10 #reset config reset_config none #jtag scan chain #format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE) jtag_device 4 0x1 0xf 0xe jtag_device 5 0x1 0x1 0x1e #target configuration daemon_startup reset #target <type> <startup mode> #target cortex_m3 <endianness> <reset mode> <chainpos> <variant> target cortex_m3 little run_and_halt 0 run_and_halt_time 0 30 working_area 0 0x20000000 16384 nobackup #flash bank <driver> <base> <size> <chip_width> <bus_width> flash bank stm32x 0x08000000 0x00010000 0 0 0 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
cebotor 0 31 января, 2008 Опубликовано 31 января, 2008 · Жалоба Да пересобрал OPENOCD Конфигурационный файл взял отсюда http://openfacts.berlios.de/index-en.phtml...OpenOCD_scripts алладин ! колоссальное спасибо за предоставленную информацию ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться