Перейти к содержанию
    

I2C немного криво реализован.

 

сначала тоже так показалось, но потом разобрался и понял что, в принципе, реализация вполне приемлемая и работает стабильно.

 

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

 

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

Изменено пользователем OVladimir

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот это не очевидно. У ST явная политика на сворачивание документирования чипов.

Они переходят на предоставление либ без подробного описания железа.

Как это сейчас делается у OEM-щиков.

Вот как тест, к примеру, скажите мне где в доке на STM32 указано от какого источника и с какой частотой идет клок на таймеры 2,3,4.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Они переходят на предоставление либ без подробного описания железа.

Жутко раздражает, чувствуешь себя идиотом пытающимся восстановить облик мамонта по куче его окаменелых экскрементов :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

скажите мне где в доке на STM32 указано от какого источника и с какой частотой идет клок на таймеры 2,3,4.

 

в data sheet и в референс мануал есть блок схема, там всё видно, плюс есть описание всех блоков словами.

 

само описание выполнено в другом стиле нежели у эникспи, сложнее немного, но всё есть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну что ж, я считаю что вы не нашли.

Элементы тактирования таймеров на блоксхеме либо не верны либо не описаны.

Стиль это не какая-то мелочь, по опросам более чем для 50% разработчиков основным критерием в выборе кристалла является качество документации.

Собственно эта документация отражает качество работы команды разработчиков чипа, т.е. косвенно определяет и качество самого чипа.

А по опыту плохая дока на пару месяцев может спокойно задержать проект.

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

Т.е. чипы сами по себе не хуже других, но во тем кто их продает я не позавидую.

 

в data sheet и в референс мануал есть блок схема, там всё видно, плюс есть описание всех блоков словами.

 

само описание выполнено в другом стиле нежели у эникспи, сложнее немного, но всё есть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Жутко раздражает, чувствуешь себя идиотом пытающимся восстановить облик мамонта по куче его окаменелых экскрементов :(

с одной стороны может это и полезно , например попользовавшись ератами атмела и филипса приходишь к выводу , что с таким количеством "особенностей" лучше бы сразу предоставили код которым можно пользоваться. предоставили софтварный интерфейс вместо хардварного так сказать. Только пhи этом нельзя оставлять прежнее отношение к этим апнотам - "это всего лишь пример , и поставляется as it is ".

А так лично мне было бы все равно с какой абстракцией работать - с битом в кфг регистре , или с членом структуры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Элементы тактирования таймеров на блоксхеме либо не верны либо не описаны.

 

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 офисе в Паге целую неделю, ни одного индуса не видел

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А бесплатные 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 качать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Получил newsletter "The ST Microcontroller Newsletter - January/February 2008" сегодня, там написано:

 

STM32 receives EG3 "editor's choice" award!

Ну это так, просто

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть еще 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 (вероятно остался от старой версии, но будет ли работать пока не проверил )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а можно поподробнее:

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 хочется его запустить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Свершилось чудо!

Я запустил 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конфигурация такая

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

(для ЛПЦ например ) или я не прав ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы пересобрали 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да пересобрал OPENOCD

 

Конфигурационный файл взял отсюда

http://openfacts.berlios.de/index-en.phtml...OpenOCD_scripts

алладин ! колоссальное спасибо за предоставленную информацию !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...