|
STM32-H103 + IAR + MT-Link , помогите оживить |
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 16)
|
Mar 11 2008, 10:24
|

Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809

|
Цитата(pan_oleg @ Mar 11 2008, 13:13)  А что не поддерживает? все поддерживает и замечательно работает . 1 Ставите на MT-link полагающиеся ему драйвера от j-linka, клоном которого он является. 2 В IAR-е в опция проэкта - Debugger выбираете j- link и работаете . (кнопка дебаг)
--------------------
если еррата пуста - это не хорошо а плохо
|
|
|
|
|
Mar 11 2008, 11:42
|

Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809

|
Цитата(KAlex @ Mar 11 2008, 13:32)  простите, это вы по поводу поддерживает или нет ? говорю же поддерживает , ибо именно им (j-linkom ) IAR предполагает работать с этими процессорами. Кортекс ядро Арм семейства, IAR под него EWARM, и его основной адаптер - j-link (то бишь MT-link) на всякий случай, из практики - вот счас только что жал кнопку дебаг на указанном процессоре ;-)
--------------------
если еррата пуста - это не хорошо а плохо
|
|
|
|
|
Mar 11 2008, 13:28
|

Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809

|
абсолютно по очереди : Цитата(pan_oleg @ Mar 11 2008, 15:35)  Драйувер для MT-Link я поставил, Он помтавился вместе с IAR5.11 драйвера для MT-link не существует ибо MT-link это прибор созданный отечественными разработчиками(они тут бывают) по образу и подобию J-link. с ИАР-ом ставяться драйвера на J-link, который как разработка ранее пренадлежал SEGGER , а потом был одолжен ИАР-у. Цитата(pan_oleg @ Mar 11 2008, 15:35)  потом после подключения MT-Link я установил дрова для J-Link с Сеггера скачали ? в таком случае это просто более последняя версия .. они должны называться например Setup_JLinkARM_V378c.exe или Setup_JLinkARM_V374g.zip или как нить вроде того Цитата(pan_oleg @ Mar 11 2008, 15:35)  они поставелись о светодиодики на нем начали себя вести по другому сказать нечего - светодиодики должны вести себя по разному в зависимости от активности прибора . у меня MT-link старый там 2 светодиода - красный ready и зеленый busy в нормальном состоянии зеленый горит красный подмаргивает.. когда заливаю код - красный зажигается как светодиод HDD на компе - в зависимости от активности "на шине".. Цитата(pan_oleg @ Mar 11 2008, 15:35)  Подключаю MT-Link через JTAG к STM32-H103 Olimex и подаю на STM32-H103 Olimex питание (подключаю его к USB), и нечего не происходит наверно я чтото не то делаю кинте какойто рабочий екземпл проекта, пожалуйста а что должно произойти ? вы проэкт компилите? проливаете ? как какой откуда ?
--------------------
если еррата пуста - это не хорошо а плохо
|
|
|
|
|
Mar 11 2008, 13:52
|

Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 16-11-07
Пользователь №: 32 387

|
драйвера я взя вот откуда: C:\Program Files\IAR Systems\Embedded Workbench 5.0 Evaluation\ARM\drivers\Jlink тоесть с своего винта файлы jlink.cat jlinkx64.cat jlink.inf jlink64.inf jlink.sys jlink64.sys в системе поставщик драйвера на устройство Segger даю все сишники и хедери и О ЧУДО ДУБАГЕР ПОДКЛЮЧИЛСЯ, огромное спасиба можно теперь примерчик для STM32-H103 Olimex чтоб хоть светодиодик зеленый включит и выключить заранее спасибо
|
|
|
|
|
Mar 14 2008, 09:48
|

Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 16-11-07
Пользователь №: 32 387

|
Люди добрые, помогите с STM32 розобратся. не могу ни одного примера запустить. для начала пробую с установкой направления порта и мигание светодиодиками. после входа в дебаг почемуто стою на адресе 0х08000120 код main.c розмещон в начальных адресах, начиная с 0х000002В8 не могу понять почему так
|
|
|
|
|
Mar 14 2008, 10:14
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(pan_oleg @ Mar 14 2008, 12:48)  Люди добрые, помогите с STM32 розобратся. не могу ни одного примера запустить. Я для начала отключил весь IAR стартап, благо что Cortex-M3 сам стек инитит. И сразу отказался от ST библиотеки. Для первого раза можно вообще не инитить сегменты ( не использовать начальные значения и не полагать что все глобальные переменные будут = 0 ) тогда код сильно упрощается и вы можете все проконтролировать Код uint32_t const __vector_table[]@".intvec" = { 0x20002800, // стек в конец RAM (uint32_t)main }; __noreturn void main(void) { RCC_APB2ENR_bit.IOPBEN = 1; RCC_APB2ENR_bit.IOPAEN = 1; // дальше надо проинитить нужные GPIO ноги и попробовать дернуть ногой // это можно сделать и через окно регистров в IAR для пробы там удобно все сделано в настройках линкера надо указать entry symbol __vector_table а icf файл для отладки в RAM у меня такой Код define memory mem with size = 4G; define region RAM = mem:[from 0x20000000 to 0x200027FF];
do not initialize { section .bss };
place at start of RAM { section .intvec }; place in RAM { readonly, readwrite }; для флеша Код define memory mem with size = 4G; define region ROM = mem:[from 0 to 0x7FFF]; define region RAM = mem:[from 0x20000000 to 0x200027FF];
do not initialize { section .bss };
place at start of ROM { section .intvec}; place in ROM { readonly }; place in RAM { readwrite }; для отладки в RAM еще mac файл для дебагера, но я использую GDB сервер и openocd, с J link должно быть проще, надо посомтреть как будет инитится стек и PC при старте и может не надо будет PC устанавливать. Код execUserReset( ) { __message "RAM START"; __writeMemory32(0x20000000,0xE000ED08,"Memory"); // VTOR __writeMemory32(0x05FA0001,0xE000ED0C,"Memory"); // Reset request __writeMemory32(0x20000000,0xE000ED08,"Memory"); // VTOR __writeMemory32(__readMemory32(0x20000004,"Memory") & (~1),0xB4,"Register"); //Set PC to entry point //__writeMemory32(0x20002800,0x8C,"Register"); // main stack }
|
|
|
|
|
Mar 14 2008, 11:52
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
Цитата(pan_oleg @ Mar 14 2008, 14:46)  извените, не совсем понял, куда мне нужно первую часть кода, что ви добавели, вставить, в main.c? я предлагаю не добавлять, а создать новый проект, причем так что бы был только ваш код ни каких билиотек, инициализации сегментов и т.п... Для начала это позволит разобраться как стартует процессор, разобраться со стеком, точками входа... (да еще в настройках дебагера убрать run to main что бы сразу останвливался) Цитата(pan_oleg @ Mar 14 2008, 14:46)  я добавил в main.c
uint32_t const __vector_table[]@".intvec" = { 0x20002800, // ñòåê â êîíåö RAM (uint32_t)main }; __noreturn __noreturn относится к определению main
|
|
|
|
|
Mar 20 2008, 09:14
|

Частый гость
 
Группа: Участник
Сообщений: 76
Регистрация: 16-11-07
Пользователь №: 32 387

|
Спасибо всем за советы, получилось запустить. Взял пример в папке иара, запустился, потом попробовал примеры из сайта ST, не компилет нормально. Написал в обявлении void main(void) (как в примерах в папке иара), а не int main(void), и подвтавил изпримера icf-файл, о все заработало. код заливается на отладчик в флешу, выходиш с дебага, он автономно работает. Всем спасибо за помощ. Думаю тему можно закрывать.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|