Кто любит RISC в жизни, заходим, не стесняемся.
Чт янв 27, 2022 17:08:16
будет-то тебе Ваньку валять
и так инфу тебе разжевывают, что не ловко за тебя
лучше поясни народу, что за часы там утебя, от включения которых все становится нормально
Чт янв 27, 2022 17:42:06
Часы реального времени Ds3231
Чт янв 27, 2022 18:03:03
Ага
Все ж стало понятно.
И фото всех внутренностей этого твоего камбайна покажешь?
ну уж до полной картины.
Чт янв 27, 2022 18:11:30
Только, пожалуйста, все фото под спойлером!!!
Чт янв 27, 2022 18:27:54
А что понятно?
Чт янв 27, 2022 18:43:38
как "что"?
как аппаратно подключено, как программно, ...
и "становится нормально" - что с часами проект работает как надо, а выключаешь часы - хулиганит?
Ты же внятно рассказал
Чт янв 27, 2022 21:16:07
Но иногда у меня закрадываются сомнения, что это делается для учёта особенностей выполнения кода на конкретных ядрах. Ну просто я никогда не поверю, что он не может вот такое "оптимизировать"
- Код:
LDR.W R4,??DataTable2
MOVS R0,#+2
STR R0,[R4, #+0]
MOVS R1,#+2
STR R1,[R4, #+4]
Это сомнительно. Много раз наблюдал эту деоптимизацию (дублирование загрузок констант). И судя по контексту - явно это не подстройка под ядро.
Нашёл галочку, которая влияет на это поведение. Называется Instruction Scheduling в настройках оптимизации.
Чт янв 27, 2022 21:29:15
Instruction Scheduling И что это означает.Написано на асемблере.На Си переведите.
Пт янв 28, 2022 07:22:43
ivan dimir, это мне написали, что бы я слюной изошелся, еще 2-4 байта, а может и больше, и лишние 2-3 мкс, а может и не лишние, теперь полезу галочку в настройках оптимизации искать, сначала перерою eclips, следом EmBitz, а там может и до флагов оптимизации доберусь.
Пт янв 28, 2022 07:32:15
Ты то тут причём? Какой смысл писать это тому кто ничего не поймёт? Мы этот вопрос с jcxz обсуждали.
PS: Можно подумать, сделать код быстрее это что-то плохое. Вместо того чтобы сидеть и конспектировать они зубоскалят. Странные люди.
Пт янв 28, 2022 13:01:47
Нашёл галочку, которая влияет на это поведение. Называется Instruction Scheduling в настройках оптимизации.
Не помогает.
По-крайней мере в "IAR ANSI C/C++ Compiler V7.80.4.12462/W32 for ARM".
См. в личке листинги с примерами.
Проверил в 2-х точках проекта, про которые помню что там были случаи этой деоптимизации. В обоих - не помогло.
Пт янв 28, 2022 13:40:47
На крайней версии влияет. Я бы не писал, если бы не заметил.
Пт янв 28, 2022 14:12:23
Я честно говоря ошибся в тактиролвании шины APB1
Добавлено after 2 minutes 36 seconds:Добавлено after 2 minutes 34 seconds:А как правильно настроить параметры .Расчитать параметы вроде посчитал перепрвил.Не работает.
Пт янв 28, 2022 19:13:34
ivan dimir писал(а):А как правильно настроить параметры .Расчитать параметы вроде посчитал перепрвил.Не работает.
PLLдля каждой серии чипов - уникальный, тут обязательно требуется изучение доков на чип, и сам кубик - там сразу видно какие коэффициенты нужно вводить, и куда. Но вот проблема, значения из кубика не всегда совпадают с нужным значением для регистра. Вот тут нужно читать доку, раздел про PLL - тот самый регистр что нужно запрограммировать. Это не сложно, достаточно использовать поиск в доке.
Несмотря на разные PLL, делители, и коммутаторы - общий алгоритм настройки у всех один.
Запуск кварца, подключение делителя и PLL к линии кварца, ожидание готовности кварца, ожидание готовности PLL, новое значение тайминга для флеша, и финальное переключение на PLL. Обрати внимание, вырезание поля не используется, вместо этого записывается всё значение сразу. Макрос _VAL2FLD поможет избежать ошибок. И да, тут можно и нужно писать комментарии потому как лишняя информация со временем выветривается.
Пт янв 28, 2022 20:15:15
У мееня usart не работал.Выводил какие то козябрики.Так настроил .И пошла строка.Я имею ввиду что настраиваю APB1 2 APB2 1 кукиш.Можно проексперементировать .Но usart не будет работать.Выводит мусор какой -то.Меня волнуют эти регистры
APB1 /2 APB2/ 1 Это максимальная так как 100 Mhz шина тактировния.Вот это расчёт регистров который я посчитал а шина интефейс не работает. При настройках APB1 /4 работает.Почему хотя расчёт вроде по книге настроил.
Добавлено after 3 minutes 26 seconds:Контроллер stm32f411cue
Добавлено after 5 minutes 52 seconds:А так выводит.на 400 кГц
Пт янв 28, 2022 21:41:38
ivan dimir писал(а):А так выводит.на 400 кГц
Невнимательность к точным инструкциям. Дока не допускает многовариантность трактования, должно быть именно так как написано там.
Для i2c есть два режима работы Fm и Sm - различаются рабочей частотой и настройками. Описание режимов и таблицы расположены выше описания регистров.
Пт янв 28, 2022 22:05:02
я читал здесь.А расчётные данные незапускают интерфейс.
Добавлено after 7 minutes 6 seconds:Есть у меня один проект ни чего не написано(только настройки).67 кбайт занимает.
Сб янв 29, 2022 00:05:42
Так вот откуда зараза распространяется, а кто запретил искать документацию у производителя чипа?
https://www.st.com/content/st_com/en/se ... cts-page=1Кто запретил использовать кубик?
https://www.st.com/stm32cubemxКстати stm32f411cue не существует, для серии 411 - APB1 не может превышать 50МГц. Остальное после угадывания полного названия чипа.
Сб янв 29, 2022 08:49:19
Ошибся не stm32f411cue stm32f411ceu.Можно и использовать КУб.Но хочется понять как вручную.
Добавлено after 3 minutes 33 seconds:
Правильно APB1 =50Мгц. Основная шина 100Мгц
Сб янв 29, 2022 09:35:36
- Код:
FLASH->ACR = FLASH_ACR_PRFTEN
| FLASH_ACR_ICEN
| FLASH_ACR_DCEN
| FLASH_ACR_LATENCY_3WS;
RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16)
| RCC_CR_HSION
| RCC_CR_HSEON; //Включаем HSE = 8 MHz
while(!(RCC->CR & RCC_CR_HSERDY));
// SYSCLK = 96 МГц USB = 48 МГц
RCC->PLLCFGR = RCC_PLLCFGR_PLLSRC_HSE
| _VAL2FLD(RCC_PLLCFGR_PLLQ,4)
| _VAL2FLD(RCC_PLLCFGR_PLLN,96)
| _VAL2FLD(RCC_PLLCFGR_PLLM,4)
| RCC_PLLCFGR_PLLP_div2;
RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16)
| RCC_CR_HSION
| RCC_CR_HSEON
| RCC_CR_PLLON; //Включаем PLL
while(!(RCC->CR & RCC_CR_PLLRDY));
RCC->CFGR = RCC_CFGR_MCO2_HSE
| RCC_CFGR_MCO2PRE_div1
| RCC_CFGR_MCO1PRE_div1
| RCC_CFGR_I2SSRC_PLLI2S
| RCC_CFGR_MCO1_HSE
| _VAL2FLD(RCC_CFGR_RTCPRE,8)
| RCC_CFGR_PPRE2_DIV1
| RCC_CFGR_PPRE1_DIV2
| RCC_CFGR_HPRE_DIV1
| RCC_CFGR_SW_PLL;
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.