Я готов извиниться, если вы озвучите свое знание и оно не окажется фейком или иной интерпретацией мною сказанного...
STM32 новичку в ARM что к чему
[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4350650#p4350650"]А еще точнее, что я-то знаю ответ, потому и назвал такое решение костыльным.[/uquote]
Я готов извиниться, если вы озвучите свое знание и оно не окажется фейком или иной интерпретацией мною сказанного...
Я готов извиниться, если вы озвучите свое знание и оно не окажется фейком или иной интерпретацией мною сказанного...
- Реклама
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
ARV, ни в коем случае нельзя начинать изучение STM32 с калокуба. Ну это ж как та же самая абдуриносреда — высер для убогих, которым хочется "тяп-ляп - и в продакшн". Ты же вроде как с AVR вполне себе работаешь и сам должен понимать, чем вменяемая разработка под AVR отличается от быдлокода в абдуриносреде.
Ну так калокуб — как та же абдурина (если не хуже)!
Для начала можно скачать на гитхабе готовые простые примеры, которые можно найти по фразе "bare metal" или "CMSIS". Если видишь там гору директорий и всякие hal_*, spl_*, system_init* и т.п., то сразу закрывай вкладку — это УГ, с которого ничему не научишься.
Добавлено after 2 minutes 14 seconds:
P.S. Для отладки достаточно в Makefile добавить:
И потом спокойно
Конфиг под заданный камень можно и не кидать локально, а указывать глобально: /usr/share/openocd/scripts/target/ и т.д.
Добавлено after 5 minutes 53 seconds:
VladislavS, а что насчет I2C через DMA под STM32G070? Может, там какой-то секрет есть?
Я вот вообще не вижу в документации, что нужно явно после записи выставлять STOP, как у F103, но у меня и чтение не запускается. В настройке I2C DMA указал:
Потом перед записью или чтением вызываю настройку DMA:
Выполняю базу (адресация и т.п.), а после START запускаю DMA:
Пробовал DMA_CCR_EN и в начало запихивать, где инициализация DMA происходит - без результата. Тактирование DMA включено (таки у меня на нем же и USART работает).
И если в случае Tx хотя бы CNDTR в нуль сбрасывался (типа, что-то оно, может быть, и передавало - пока я без осцилла), а вот при Rx CNDTR так и сидит равным количеству запрошенных байт данных.
Сейчас чуть в отладчике поиграюсь, но таки документация совершенно невменяемая: для обычных чтения/записи даже картинки с алгоритмами нарисовали, а для DMA хрен пойми что, еще и фраза "The end of transfer is managed with the NBYTES counter" наводит на мысль, что прерывания по TC у DMA работать не будут и нужно будет контролировать по CNDTR…
Добавлено after 15 minutes 36 seconds:
Ахъ, рукожопие мое зело велико!
Все там работает, это я в одном месте, сбрасывая ошибки перед записью без DMA, не вернул флаги нужные. Опять в виде макроса сделал - усе ОК.
И прерывание отрабатывает, что позволяет устанавливать флаги готовности и сбрасывать флаги занятости. Прелесть!
Ну так калокуб — как та же абдурина (если не хуже)!
Для начала можно скачать на гитхабе готовые простые примеры, которые можно найти по фразе "bare metal" или "CMSIS". Если видишь там гору директорий и всякие hal_*, spl_*, system_init* и т.п., то сразу закрывай вкладку — это УГ, с которого ничему не научишься.
Добавлено after 2 minutes 14 seconds:
P.S. Для отладки достаточно в Makefile добавить:
Код: Выделить всё
openocd:
openocd -f openocd.cfg
dbg:
arm-none-eabi-gdb $(ELF) -ex 'target remote localhost:3333' -ex 'monitor reset halt'
Код: Выделить всё
make openocd &
make dbgДобавлено after 5 minutes 53 seconds:
VladislavS, а что насчет I2C через DMA под STM32G070? Может, там какой-то секрет есть?
Я вот вообще не вижу в документации, что нужно явно после записи выставлять STOP, как у F103, но у меня и чтение не запускается. В настройке I2C DMA указал:
Код: Выделить всё
I2C1->CR1 = I2C_CR1_PE | I2C_CR1_RXDMAEN | I2C_CR1_TXDMAEN;Код: Выделить всё
static void i2cDMAsetup(int tx, uint8_t len){
if(tx){
DMA1_Channel1->CCR = DMATXCCR;
DMA1_Channel1->CPAR = (uint32_t) &I2C1->TXDR;
DMAMUX1_Channel0->CCR = 11;
}else{
DMA1_Channel1->CCR = DMARXCCR;
DMA1_Channel1->CPAR = (uint32_t) &I2C1->RXDR;
DMAMUX1_Channel0->CCR = 10;
}
DMA1_Channel1->CMAR = (uint32_t) I2Cbuf;
DMA1_Channel1->CNDTR = i2cbuflen = len;
}Код: Выделить всё
uint8_t read_i2c_dma(uint8_t addr, uint8_t nbytes){
if(nbytes < 1) return 0;
while(I2Cbusy);
i2cDMAsetup(0, nbytes);
goterr = 0;
if(!i2c_startr(addr, nbytes, 1)) return 0;
DMA1_Channel1->CCR = DMARXCCR | DMA_CCR_EN; // start transfer
return 1;
}И если в случае Tx хотя бы CNDTR в нуль сбрасывался (типа, что-то оно, может быть, и передавало - пока я без осцилла), а вот при Rx CNDTR так и сидит равным количеству запрошенных байт данных.
Сейчас чуть в отладчике поиграюсь, но таки документация совершенно невменяемая: для обычных чтения/записи даже картинки с алгоритмами нарисовали, а для DMA хрен пойми что, еще и фраза "The end of transfer is managed with the NBYTES counter" наводит на мысль, что прерывания по TC у DMA работать не будут и нужно будет контролировать по CNDTR…
Добавлено after 15 minutes 36 seconds:
Ахъ, рукожопие мое зело велико!
Все там работает, это я в одном месте, сбрасывая ошибки перед записью без DMA, не вернул флаги нужные. Опять в виде макроса сделал - усе ОК.
И прерывание отрабатывает, что позволяет устанавливать флаги готовности и сбрасывать флаги занятости. Прелесть!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
ну, чтобы начинающие знали, где им помогут, как смогут. просто если кто тут задаст вопрос, будет обосран, и только.VladislavS писал(а):А чё так?
но ведь вы этого не посоветовали? значит, видимо, секрет...VladislavS писал(а):тоже мне секрет - GDB Server запустить
ну вот я успешно пишу под винду на free pascal, и при этом я не углубляюсь ни в регистры процессора, ни в устройство FAT32 или тем паче NTFS, и даже более того, использую готовые компоненты, чтобы тыкая мышкой в 2 клика сделать видеоплейер, например. если потребуется, я могу погрузиться и до уровня регистров и видеопотоков, но это "если потребуется" - для моих задач не требуется. то же самое и с кубом - сделать быстро и легко то, что забожалось. а когда захочется нетрадиционного секса - можно и твоим советам последоватьEddy_Em писал(а):ни в коем случае нельзя начинать изучение STM32 с калокуба
вот ты даже представить себе не можешь, что за пределами /usr есть жизнь, и этой жизни больше, чем в привычном тебе окружении... поэтому все твои советы и выглядят неуместно.Eddy_Em писал(а):указывать глобально: /usr/share/openocd/scripts/target/ и т.д.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 1337
- Зарегистрирован: Вт ноя 19, 2019 06:10:18
Странно, для меня очевидным местом поиска было "Руководство по HAL" соответствующей линейки МК. Только оно очень большое и без просмотра исходников HAL при попытках осмысленного использования вряд ли получится получить что-нибудь работающее.+ARV писал(а):
вопрос остался открытым: где искать?
Очевидно по имени колбэка и очевидно в обработчике. Обнаружив имя в обработчике, легко найти и само тело колбэка.
Попробовать HAL, возможно, стОит, хотя бы для понимания, почему пользоваться регистрами выгодней. Простое сопоставление объёмов RM и HAL показывает, что они по объёму примерно равны, поэтому изучение настройки периферии через регистры по времени занимает примерно столько же времени, сколько чтение "Руководства.." для осмысленного использования HAL. Ещё заметь, что HAL в общем случае не обеспечивает переноса один-в-один кода с одного МК на другой. Поэтому рекомендую взять CubeIDE как настроенный искаропки набор инструментов, RM, DS- и в путь.
И ещё. Если надо, то нет никаких препятствий для заимствования из HAL драйвера нужной периферии.
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
[offtop]Просто упертых вендовозов я вообще людьми не считаю: ведь знают, что есть системы гораздо лучше и удобней, чем это УГ, но нет, продолжают жрать кактус![/offtop]
Кстати, SHT30, на котором я I2C тестирую, оказался на редкость пакостным засранцем: чуть что - "выходит из себя", подвешивая линию… Помогает только перезапуск его питания, я еще на несколько подобных убогих датчиков натыкался, которые всю линию гробят, если ты им неправильную команду дашь или еще что. В общем, надо на моей "нашлепке" для Orange Pi Zero+ предусмотреть еще и сброс питания датчиков, ведь за 17км каждый раз ездить, чтобы проводок тудым-сюдым - дурных нема. Ну и на всех железках с МК нужно подобное предусматривать, чтобы питание периферии была возможность включать/отключать.
Кстати, SHT30, на котором я I2C тестирую, оказался на редкость пакостным засранцем: чуть что - "выходит из себя", подвешивая линию… Помогает только перезапуск его питания, я еще на несколько подобных убогих датчиков натыкался, которые всю линию гробят, если ты им неправильную команду дашь или еще что. В общем, надо на моей "нашлепке" для Orange Pi Zero+ предусмотреть еще и сброс питания датчиков, ведь за 17км каждый раз ездить, чтобы проводок тудым-сюдым - дурных нема. Ну и на всех железках с МК нужно подобное предусматривать, чтобы питание периферии была возможность включать/отключать.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Реклама
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
ARV, вы что ли TIM1 в прерывании пытаетесь поморгать светодиодом?
Добавлено after 34 minutes 18 seconds:
Долго его ждать, я уже и там и там поморгал светодиодом, в CubeMX проект создал на HALе, в IARе открыл, через отладчик пропустил.
Код весит
Добавлено after 34 minutes 18 seconds:
Долго его ждать, я уже и там и там поморгал светодиодом, в CubeMX проект создал на HALе, в IARе открыл, через отладчик пропустил.
Код весит
Код: Выделить всё
4'320 bytes of readonly code memory
30 bytes of readonly data memory
1'104 bytes of readwrite data memory- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Ничего себе! Самый легкий "блинк", ЕМНИП, занимал около 16 байт прошивки!Код весит
Мой последний "блинк" под G0 (мыргает с интервалом в секунду, либо отбивает морзянкой 'SOS'):
Код: Выделить всё
text data bss dec hex filename
688 192 1176 2056 808 mk/blink.elfКод: Выделить всё
CFLAGS += -fno-common -ffunction-sections -fdata-sections
LDFLAGS += -Wl,--gc-sections
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Х бы его знал куда тут тыкать.Eddy_Em писал(а):Посмотри в настройках калокуба: может, там assert включен. Ну и у gcc/ld не забудь проверить:
В IARе в Optimizations Hight и Size стоит.
так благодаря помогающим мне приходится подолгу ковыряться в коде и читать всякое, предварительно искать всякое... потому и долго ждать.Dimon456 писал(а):Долго его ждать
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Куда код вставлять
Прерывания находятся в файле stm32f1xx_hal_tim.h почти в самом конце
Спойлер
Код: Выделить всё
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim1);
/* USER CODE END 2 */Код: Выделить всё
/* USER CODE BEGIN 4 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if (htim->Instance == TIM1)
{
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_8);
}
}
/* USER CODE END 4 */- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Дык, должны же быть опции компилятора! Я без понятия, как этот убогий софт компиляет без make, видимо, генерит какой-нибудь скрипт. Но для этого ступодово где-то в недрах должны быть настройки флагов компилятора и линкера.
Лучше всего самому Makefile написать, да пользоваться. У меня он постоянно совершенствуется, вот, с добавлением отладки уже 165 строчек получается…
Лучше всего самому Makefile написать, да пользоваться. У меня он постоянно совершенствуется, вот, с добавлением отладки уже 165 строчек получается…
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
ARV, в IARе есть"фишка", которая не доступна в некоторых других IDE. Проверьте в своей IDE.
В режиме отладки найдите что-то вроде CPU Registers (в некоторых случайх нужно выбрать Current CPU Registers). Найдите значение CYCLECOUNTER, которое равно количеству тактов, которое прошло с момента запуска программы.
Чтобы измерить время выполнения функции, сделайте на ней шаг отладчика без захода в тело функции (Step Over). Значение CCSTEP покажет разницу между началом выполнения шага и его завершением.
Если CYCLECOUNTER не обновляется, то попробуйте установить бит CYCCNTENA в регистре DWT Control (DWT_CTRL.CYCCNTEN), который можно найти в группе регистров Data Watchpoint and Trace unit.
Добавлено after 9 minutes 39 seconds:
Потом созданный проект тупо открыл в IARе, нажал Make, проект собрался, все.
В режиме отладки найдите что-то вроде CPU Registers (в некоторых случайх нужно выбрать Current CPU Registers). Найдите значение CYCLECOUNTER, которое равно количеству тактов, которое прошло с момента запуска программы.
Чтобы измерить время выполнения функции, сделайте на ней шаг отладчика без захода в тело функции (Step Over). Значение CCSTEP покажет разницу между началом выполнения шага и его завершением.
Если CYCLECOUNTER не обновляется, то попробуйте установить бит CYCCNTENA в регистре DWT Control (DWT_CTRL.CYCCNTEN), который можно найти в группе регистров Data Watchpoint and Trace unit.
Добавлено after 9 minutes 39 seconds:
А CubeMX и не компилирует, он создает проект для выбранной IDE, я IAR выбрал, а так доступно MDK_ARM TrueSTUDIO и еще чего-то есть.Eddy_Em писал(а):как этот убогий софт компиляет без make
Потом созданный проект тупо открыл в IARе, нажал Make, проект собрался, все.
- Сообщения: 1849
- Зарегистрирован: Вс дек 25, 2016 08:34:54
Вроде как мы пока только "кнопочку" жмем и размер не имеет значения.Eddy_Em писал(а):Ничего себе! Самый легкий "блинк",
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
Ну и чем это поможет? Воспитать очередного абдуринщика, вообще не понимающего, что он пишет? "Скачайте скетч отсюда, скопируйте это туда, нажмите кнопочку и вуаля"?
Добавлено after 4 minutes 22 seconds:
Вот мой свежий код, по которому я здесь последние дни вопросы задавал. I2C с DMA или без оного, коннект - по USART (т.к. на G070 USB отсутствует). Размер бинарника - 6288Б. Распределение памяти по эльфу:Странно, кстати, что bss такая здоровая.
P.S. Ну и жесть: у меня размер bss у "блинка" - 1176Б! Откуда, блин! Там вообще нет буферов, а переменных по минимуму. Две страницы кода, треть из которых — лицензия GPL в шапке… В map-файле "блинка" bss кончается со смещением 8, что-то с "size" не то! Аналогично с i2c, где bss кончается по смещению 0x27c, а никак не 0x9d0…
Да, проверил objdump -h - он показывает совсем другие (близкие к реальности) размеры, нежели size. Что-то с size не то!
Ага, вона как: оно к реальному bss прибавляет зачем-то пустое место на выравнивание для моей секции .myvars:
Добавлено after 4 minutes 22 seconds:
Вот мой свежий код, по которому я здесь последние дни вопросы задавал. I2C с DMA или без оного, коннект - по USART (т.к. на G070 USB отсутствует). Размер бинарника - 6288Б. Распределение памяти по эльфу:
Код: Выделить всё
text data bss dec hex filename
6068 220 2512 8800 2260 mk/i2cscan.elf
P.S. Ну и жесть: у меня размер bss у "блинка" - 1176Б! Откуда, блин! Там вообще нет буферов, а переменных по минимуму. Две страницы кода, треть из которых — лицензия GPL в шапке… В map-файле "блинка" bss кончается со смещением 8, что-то с "size" не то! Аналогично с i2c, где bss кончается по смещению 0x27c, а никак не 0x9d0…
Да, проверил objdump -h - он показывает совсем другие (близкие к реальности) размеры, нежели size. Что-то с size не то!
Ага, вона как: оно к реальному bss прибавляет зачем-то пустое место на выравнивание для моей секции .myvars:
Код: Выделить всё
arm-none-eabi-size -A blink.elf
blink.elf :
section size addr
.vector_table 192 134217728
.text 688 134217920
.data 0 536870912
.myvars 1168 134218608
.bss 8 536870912
.comment 117 0
.ARM.attributes 43 0
Total 2216
Последний раз редактировалось Eddy_Em Вс янв 08, 2023 21:02:53, всего редактировалось 2 раза.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
[uquote="ARV",url="/forum/viewtopic.php?p=4350654#p4350654"]а разве я не русским языком написал свой вопрос: меня интересует HAL и CubeMX[/uquote]
Так я сразу и сказал, что вы прямым текстом отказались от любой помощи, которую мы можем оказать. И продолжаете демонстративно отказываться.
Причем наличие костылей, напоминаю, не говорит будто разработчики дураки.
Но у ST есть и откровенно дурацкие решения, оправдания которым я придумать не могу. Например, организация буферов в USB у F1 или EPnR там же.
И да, если во время выполнения функции возникнет прерывание, счетчик не остановится, поэтому будьте внимательны при подобном расчете быстродействия.
Так я сразу и сказал, что вы прямым текстом отказались от любой помощи, которую мы можем оказать. И продолжаете демонстративно отказываться.
Тогда чем вы недовольны? Именно адекватную помощь вам и пытаются оказать. Еще раз: изучать ради вас тот же ST-HAL никто не будет.ARV писал(а):я ожидаю адекватной помощи:
Я бы это интерпретировал как попытку выяснить нужно ли это хоть кому-то. Будь я на месте ARV, то подобная фраза означала бы, что 1-2 интересующимся объяснил бы в личку, а если больше, то уже отдельным постом или темой. Но хватит ли самоому ARV добросовестности на это, не знаю.VladislavS писал(а):А чё так? Почувствовав себя гуру 1 lvl сразу на остальных плевать можно? Что тогда о гуру 80 lvl говорить.
Ну, интерпретацией сказанного вами оно являться не может по определению. А так, причина почему я назвал такое объединение костылем, уже названа: просто добавить адресов прерываний было бы несложно, но это ломает совместимость, а заранее такое количество таймеров не предусмотрели. Вот и все.КРАМ писал(а):Я готов извиниться, если вы озвучите свое знание и оно не окажется фейком или иной интерпретацией мною сказанного...
Причем наличие костылей, напоминаю, не говорит будто разработчики дураки.
Но у ST есть и откровенно дурацкие решения, оправдания которым я придумать не могу. Например, организация буферов в USB у F1 или EPnR там же.
Сейчас это бесполезно. Воспринимать советы более опытных людей, противоречащие его представлениям, он не хочет. Возможно, когда получит граблями по лбу, мнение поменяется. В любом случае для этого нужно время и мыслительный процесс.Eddy_Em писал(а):ARV, ни в коем случае нельзя начинать изучение STM32 с калокуба.
Нам, конечно, очень лестно, что вы считаете всех присутствующих телепатами и предсказателями, способными из ничего угадать, какую же ошибку вы допустили в непонятно какой программе, вводя непонятно какие настройки. Ах да, ни эту программу, ни этих настроек у нас, разумеется, нет.ARV писал(а):но ведь вы этого не посоветовали? значит, видимо, секрет...
На форуме. Что на этом, что на многих других.ARV писал(а):ну, чтобы начинающие знали, где им помогут, как смогут.
Это вы очень... ОЧЕНЬ мягко выразились. Что бы там маркетологи не плели, переносимости ST-HAL не добавляет, а скорее наоборот, убавляет. Впрочем, желающие могут продемонстрировать как они портируют хотя бы ногодрыг между stm32, at91sam и gd32. При помощи ST-HAL, конечно.tonyk писал(а):Ещё заметь, что HAL в общем случае не обеспечивает переноса один-в-один кода с одного МК на другой.
Не уверен как там в ARM (скорее всего, так же), но в RISCV есть системный регистр (m)cycle, ровно за это отвечающий: увеличивать свое значение на каждом такте. IDE тут вообще никаким боком, я с ним игрался при помощи обычной отладки.Dimon456 писал(а):ARV, в IARе есть"фишка", которая не доступна в некоторых других IDE. Проверьте в своей IDE.
И да, если во время выполнения функции возникнет прерывание, счетчик не остановится, поэтому будьте внимательны при подобном расчете быстродействия.
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4350851#p4350851"]Ну и жесть: у меня размер bss у "блинка" - 1176Б! Откуда, блин![/uquote]
А зачем ты --specs=nano.specs закомментил?
А зачем ты --specs=nano.specs закомментил?
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
[uquote="Reflector",url="/forum/viewtopic.php?p=4350881#p4350881"]А зачем ты --specs=nano.specs закомментил?[/uquote]
О, блин. А ХЗ, зачем. Раскомменчиваю, так ведь код меньше получается.
О, блин. А ХЗ, зачем. Раскомменчиваю, так ведь код меньше получается.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ
- Сообщения: 2089
- Зарегистрирован: Вс июн 19, 2016 09:32:03
И G070 - это же реально G081, там 32-х битный TIM2 есть, RNG, DAC...
Добавлено after 15 minutes 21 second:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4350887#p4350887"]Раскомменчиваю[/uquote]
Заодно и -flto добавь
Добавлено after 15 minutes 21 second:
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=4350887#p4350887"]Раскомменчиваю[/uquote]
Заодно и -flto добавь
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
[uquote="Reflector",url="/forum/viewtopic.php?p=4350896#p4350896"]там 32-х битный TIM2 есть, RNG, DAC...[/uquote]
Редко когда бывает нужен 32-битный таймер, а уж тем паче ГСЧ и ЦАП. Но если и понадобится, то тот же F303 таки приятней, а по цене - одинаково (имею в виду G0 с USB на борту; а без USB обычно мне нужно совсем уж мало).
Кстати, глянул даташит: нет у G070 ни одного 32-битного таймера, как нет ни ГСЧ, ни ЦАП. А с чего ты взял, что 070 в реальности - 081?
Редко когда бывает нужен 32-битный таймер, а уж тем паче ГСЧ и ЦАП. Но если и понадобится, то тот же F303 таки приятней, а по цене - одинаково (имею в виду G0 с USB на борту; а без USB обычно мне нужно совсем уж мало).
Кстати, глянул даташит: нет у G070 ни одного 32-битного таймера, как нет ни ГСЧ, ни ЦАП. А с чего ты взял, что 070 в реальности - 081?
Ну, это уж вряд ли понадобится. Все равно у меня неиспользуемые секции удаляются (-Wl,--gc-sections).Заодно и -flto добавь
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Я на гитхабе, в ЖЖ


