|
|
  |
STM32F103x, делимся впечатлениями |
|
|
|
May 9 2009, 23:21
|
Участник

Группа: Участник
Сообщений: 72
Регистрация: 23-11-06
Из: Odessa
Пользователь №: 22 646

|
Цитата(KRS @ May 9 2009, 23:42)  Программа копирует себя в RAM, и оттуда шьет флеш. Понятно, спасибо. Тогда интересно, STM32 всегда копираует часть кода в RAM для выполнения или если только его попросить об этом, и описан ли этот процесс где-то в документации или это можно увидеть только из примера программы DFU?
|
|
|
|
|
May 18 2009, 12:36
|
Местный
  
Группа: Свой
Сообщений: 251
Регистрация: 26-07-05
Пользователь №: 7 117

|
Цитата(sonycman @ May 18 2009, 15:51)  На кортексе нет тамб или аэрэм режимов, у него всегда thumb-2. Я писал не про кортекс, а про компилятор. Цитата(sonycman @ May 18 2009, 15:51)  Чем не устраивают inline функции? Вы меня не поняли, поясню на конкретном примере. Для arm можно было записать так: static __inline int FASTABS(int x) { int t=0; __asm { eor t, x, x, asr #31 sub t, t, x, asr #31 } return t; } А что делать для thumb чтобы получить тот же результат ?
|
|
|
|
|
May 19 2009, 06:26
|
Местный
  
Группа: Свой
Сообщений: 251
Регистрация: 26-07-05
Пользователь №: 7 117

|
Цитата(KRS @ May 18 2009, 19:23)  Причем здесь компилятор? А вы попробуйте откомпилировать приведённый мной код, тогда узнаете. Цитата(KRS @ May 18 2009, 19:23)  Надо взять ARMv7-M Architecture Application Level Reference Manual там есть все команды, которые поддерживаются в THUMB2  А это здесь причём ??? Повторю вопрос: как заинлайнить выше приведённый код в кейле в случае компиляции под THUMB2 ?
|
|
|
|
|
May 19 2009, 08:20
|

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

|
Цитата(sergvks @ May 19 2009, 10:26)  Повторю вопрос: как заинлайнить выше приведённый код в кейле в случае компиляции под THUMB2 ? Не знаю как в KEIL, а полноценный RVCT от RVDS не умеет использовать inline asm для THUMB и THUMB2. Нужно использовать embedded asm примерно так. Код __asm int FASTABS(int x) { eor r1, r0, r0, asr #31 sub r0, r1, r0, asr #31 bx lr } но тогда функция не будет inline. Но вот если gcc использовать тут можно уже расширенный асм использовать.
|
|
|
|
|
May 25 2009, 22:28
|

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

|
продолжаю делится впечатлениями.... доделал проект моста USB<->Arinc 429 RX/TX жужжыт на скорости 100кbs порадовал время(стабильность) входа и выхода из прерываний, после LPC2148 просто глоток воздуха порадовал bit-band, но както пока низнаю куда его применить. до 120 мгц гонится и работает, дальге не помню что происходит. сильно вперед продвинутый набор инструкций, если правильно писать на си уметь!! то асм непонадобится. получил код обработчика прерывания от компиллера в который руками некуда залесть! на каждую строку с-кода 1 2 или 3 инструкции. лепота. так для смеха - проект написан абсалютно полностью на С, нистрочка асма( правда я еще не оптимизил  ). невидалый в контроллеростроении для меня случай. огорчило что к тактовой USB нельзя присунуть делитель отличный от 1 и 1,5. так могли сделать только враги!!! огорчили таймеры, 16 бит..... просто фашисты, всю малину обгадили ктонит RS485 уже реализовывал?
|
|
|
|
|
May 25 2009, 22:57
|

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

|
Цитата(klen @ May 26 2009, 02:28)  огорчило что к тактовой USB нельзя присунуть делитель отличный от 1 и 1,5. так могли сделать только враги!!! Радует хотя бы это. На SAM7S вообще кроме х1 ничего нет Кстати, хотел спросить про макс. частоту SPI. С какой бы это стати в мануале указана частота 18 МГц? Что помешает SPI1, висящему на APB2, работать на частотах вплоть до 36 МГц? Ведь делители такое позволяют? Никто не пробовал?
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|