STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение WiseLord »

Может быть, фейк, и просто кристалла внутри нет?
B_Oleg
Родился
Сообщения: 2
Зарегистрирован: Чт июл 30, 2020 23:12:27

Re: STM32 новичку в ARM что к чему

Сообщение B_Oleg »

Внутри что-то есть, ноги тестером прозваниваются, возможно это защитные диоды.
Когда я покупал на али, там был только один отзыв, - все хорошо и все работает. Цена в районе 100р. С этим китайцем пока не связывался.
Раньше я на али несколько таких брал (ревизия Z), тоже в районе 100р, все было нормально. С виду как новые, но из разных партий и внутри прошивка. Значит откуда-то выпаяли.
Были мысли, что теперь пришли какие-то другие микросхемы, перемаркированные.
Но тогда возникают вопросы - зачем маркировать "А", а не "Z"? и где взять на столько дешевую в таком же корпусе, что бы был смысл перемаркировать и продать за 100 рублей?
Там же, на алике, нет в подобном корпусе дешевле 100р.
Вот и возникают у меня сомнения, может все-таки это не фейк.

Наверное, можно как-то вскрыть корпус и под микроскопом посмотреть на кристалл, но эта задача не по мне.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: STM32 новичку в ARM что к чему

Сообщение Reflector »

[uquote="B_Oleg",url="/forum/viewtopic.php?p=3873365#p3873365"]Но тогда возникают вопросы - зачем маркировать "А", а не "Z"?[/uquote]
Писали, что перемаркировывают F303, причем ревизия вообще не проставлена, а по ID определяются как F0 или F1, там даже ноги питания не всегда совпадают...
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Re: STM32 новичку в ARM что к чему

Сообщение 12val12 »

del
ух ты.... показывает
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Re: STM32 новичку в ARM что к чему

Сообщение baghear »

Добрый день, Keil переменные в watch обновляются только при остановке программы. Подскажите как это решается.
Аватара пользователя
Myp3ik
Мучитель микросхем
Сообщения: 450
Зарегистрирован: Вс янв 09, 2011 23:05:37
Откуда: СССР

Re: STM32 новичку в ARM что к чему

Сообщение Myp3ik »

View - Periodic Window Update
Иван Сусанин - первый полупроводник :solder:
Аватара пользователя
baghear
Опытный кот
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Re: STM32 новичку в ARM что к чему

Сообщение baghear »

Спасибо!!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25121
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: STM32 новичку в ARM что к чему

Сообщение КРАМ »

В порядке обмена опытом для тех, кто не сталкивался.
Нынче работаю проект с F407 и опытным путем обнаружил следующее:
1. При работе передатчика USART на шину RS485 необходимо формировать сигнал управления передатчиком драйвера (у меня ADM489). При использовании DMA с USART Tx включение передатчика драйвера не вызывает вопросов и происходит перед запуском DMA. А вот выключение драйвера на передачу требует завершения последнего символа пакета. То есть в прерывании от DMA (TC), в отличии от PIC24/dsPIC33, на передачу в очереди будет стоять ДВА СИМВОЛА, а не один. Один в сдвиговом регистре и один в буфере. То есть нужно увеличить пакет не на один, а на два фиктивных символа, которые будут вырезаны из передаваемого пакета в шине сигналом управления передатчиком драйвера, который мы выключим в обработчике DMA.
2. Тут я вероятнее всего тупо не нашел в рефмануале ... :)))
Реквесты DMA должны быть выбраны таким образом, чтобы периферия обслуживаемая этим потоком DMA и периферия генерирующая реквесты для этого потока были расположены на одной шине (APB1 или APB2). То есть, например, нельзя реквестить USART6 таймером TIM5, поскольку первый сидит на APB2, а второй на APB1. Обычно это не замечаешь, ибо не слишком часто требуется реквестить один периферийный модуль от другого...

Как то так...
Извините, если написал баян...
:)
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6132
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: STM32 новичку в ARM что к чему

Сообщение Asmodey »

При попытке подключить к проекту библиотеку для управления OLED дисплеем получил от IAR следующие сообщения:
Error[Pe020]: identifier "uint16_t" is undefined C:\STM32\A\libssd1306\ssd1306.h 5
и
Error[Pe020]: identifier "uint8_t" is undefined C:\STM32\A\libssd1306\ssd1306.h 5

Я так понял, что IAR по умолчанию не понимает типов данных uint16_t и unit8_t и требует подключения библиотечного файла с описанием этих типов. Очевидно, это файл stdint.h. В файле main.с дописал #include "stdint.h", не помогло. Изменил на #include <stdint.h>, бесполезно. Нашел файл stdint.h в директории IAR в Programm Files и скопировал его в папку с проектом и через Add>Add Files добавил этот файл в проект. И ничего, все те же сообщения об ошибках... Что я делаю не так?

P.S. только написал, и тут же сам допер. Нужно было подключить библиотечный файл stdint.h в файлах самой библиотеки ssd1306.h и ssd1306.c.

Одно непонятно, это что же теперь, в каждом подключаемом к проекту файле нужно дописывать #include "stdint.h" если там присутствуют uint8_t или что-то подобное?
Астролябия-сама меряет, было бы что мерять!!!
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

Не туда подключаете. Где нехватает, туда и подключать. main.c то причём? И кто учил .h в проект добавлять?
Аватара пользователя
Asmodey
Друг Кота
Сообщения: 6132
Зарегистрирован: Сб янв 28, 2006 22:47:24

Re: STM32 новичку в ARM что к чему

Сообщение Asmodey »

В конечном итоге я нашел куда подключать.

Но, неужели нельзя сделать так, чтобы ничего никуда не подключать, а все типы данных определялись как-то сами по себе, и файл stdint.h автоматически подключался везде, где есть в нем необходимость? Может в настройках компилятора что-то подшаманить?
Астролябия-сама меряет, было бы что мерять!!!
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25121
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: STM32 новичку в ARM что к чему

Сообщение КРАМ »

[uquote="Asmodey",url="/forum/viewtopic.php?p=3883695#p3883695"]Может в настройках компилятора что-то подшаманить?[/uquote]
И сделать проект прибитым намертво гвоздями к среде и компилятору...
Причем на уровне исходника.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="Asmodey",url="/forum/viewtopic.php?p=3883695#p3883695"]Но, неужели нельзя сделать так, чтобы ничего никуда не подключать, а все типы данных определялись как-то сами по себе[/uquote]Есть старинный русский способ! По щучьему велению, по моему хотению, а ну ка код пишись сам! :)
Аватара пользователя
Zhuk72
Сверлит текстолит когтями
Сообщения: 1231
Зарегистрирован: Ср янв 29, 2014 08:41:31
Откуда: Баку
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Zhuk72 »

[uquote="Asmodey",url="/forum/viewtopic.php?p=3883695#p3883695"]Но, неужели нельзя сделать так, чтобы ничего никуда не подключать, а все типы данных определялись как-то сами по себе...[/uquote]
Можете через typedef определить эти уинты.
Каждый имеет право на свое личное ошибочное мнение.

У меня было тяжелое детство - я до 14 лет смотрел черно-белый телевизор.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: STM32 новичку в ARM что к чему

Сообщение VladislavS »

[uquote="Zhuk72",url="/forum/viewtopic.php?p=3883767#p3883767"]Можете через typedef определить эти уинты.[/uquote]В нескольких местах определять типа, да ещё переопределяя стандартные - грубая ошибка!
tonyk
Это не хвост, это антенна
Сообщения: 1309
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: STM32 новичку в ARM что к чему

Сообщение tonyk »

Как правильно попросить линковщик положить мой массив по абсолютному адресу внутри флэш? Раньше пользовался at(), а в GCC она не поддерживается, и алгоритма действий для её замены не могу найти. Ещё оговорка: область моего массива может быть не последними адресами флэш.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение ARV »

tonyk писал(а):пользовался at(), а в GCC она не поддерживается
в GCC есть секции и скрипт линкера. секций обычно достаточно, скрипт надо править для экзотических требований.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
tonyk
Это не хвост, это антенна
Сообщения: 1309
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Re: STM32 новичку в ARM что к чему

Сообщение tonyk »

[uquote="ARV",url="/forum/viewtopic.php?p=3883811#p3883811"]
tonyk писал(а):пользовался at(), а в GCC она не поддерживается
в GCC есть секции и скрипт линкера. секций обычно достаточно, скрипт надо править для экзотических требований.[/uquote]
Так это и ежу понятно. Я не вижу способа как внутрь секции с кодом втиснуть мой массив.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: STM32 новичку в ARM что к чему

Сообщение Eddy_Em »

tonyk, у меня на гитхабе в stm32samples есть пример: я там выделил во флеше 1 блок для хранения настроек, а все остальное - под логи. На секциях.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: STM32 новичку в ARM что к чему

Сообщение oleg110592 »

[uquote="tonyk",url="/forum/viewtopic.php?p=3883785#p3883785"]Раньше пользовался at()[/uquote]
может так (без правки скрипта линкера):

Код: Выделить всё

#define FLASH_PAGE_SIZE         ((uint32_t)0x00000400)   /* FLASH Page Size */
#define FLASH_USER_START_ADDR   ((uint32_t)0x08002000)   /* Start @ of user
......
   FlashErase(FLASH_USER_START_ADDR);
    CheckFlashErase(FLASH_USER_START_ADDR);
    FlashWord16Prog(FLASH_USER_START_ADDR, (uint16_t)DATA_TO_PROG);
    FlashWord16Prog(FLASH_USER_START_ADDR + 2, (uint16_t)(DATA_TO_PROG >> 16));
   
    /* Check the programming of the address */
    if  ((*(uint32_t *)(FLASH_USER_START_ADDR)) != DATA_TO_PROG)
    {
      error |= ERROR_PROG;
    }

из Example Code snippets covering STM32 F0 series
https://www.st.com/en/embedded-software ... etsf0.html
Ответить

Вернуться в «ARM»