21.08.2019, 11:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 8,012
Сказал спасибо: 2,770
Сказали Спасибо 2,715 раз(а) в 2,007 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Предположу, что соседние ячейки могут как-то повлиять друг на друга.
При тестировании RAM не пишут 00/FF.
В каких-то процессорах TI, точно не скажу, давненько уже читал тот даташит, там что-то по 4 соседние бита (или байта) друг на друга влияли - суть была в том, что после скольки-то циклов записи нужно было стирать/перезаписывать весь этот блочок разом.
Т.е. нужно дописать единичку в какой-то байт, а кол-во таких допустимых циклов достигло предела (причем - не сотни-тысячи, а единицы записей) - будь добр вначале считай весь блочок, потом его сотри и перезапиши снова тем же.
|
|
|
|
21.08.2019, 12:13
|
|
Вид на жительство
Регистрация: 27.11.2007
Сообщений: 429
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
С рамом понятнее - при записи 0 или 1 в какой то бит, это же значение может записаться еще куда нибудь. Это в динамической памяти особенно надо учитывать. Поэтому проверка рама не быстрая операция.
А с флешем проще.
Сообщение от Yuri222
|
весь этот блочок разом.
|
Сообщение от Yuri222
|
будь добр вначале считай весь блочок, потом его сотри и перезапиши снова тем же.
|
Ну так в микроконтроллерах о которых мы ведем речь и есть страничная организация. Стереть один байт не возможно.
Возможно только изменить бит с 1 на 0. А если надо наоборот, то нужно стереть всю страницу.
|
|
|
|
21.08.2019, 12:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.02.2005
Адрес: Минск, Беларусь
Сообщений: 8,012
Сказал спасибо: 2,770
Сказали Спасибо 2,715 раз(а) в 2,007 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
sat_art, битик одиночный можно дописать? Так вот, в тех контроллерах, если дописываешь битики 4 раза в кусочек памяти. то для гарантированного непропадания информации, чтобы дописать 5-й раз, нужно переписать весь блочок, предварительно его стерев.
Т.к. запись битика в одном байте как-то могла влиять на соседние.
Логически это не объяснить, значит - есть физические причины этого эффекта.
Не помню только, хоть убей - какая там организация памяти, т.е. какого минимального размера блок можно стереть.
Из-за этой особенности даже не рассматривали для своего применения, ибо битики нужно было дописывать часто, а еще учитывать кол-во записей при этом - тот еще гемор.
Последний раз редактировалось Yuri222; 21.08.2019 в 12:38.
|
|
|
|
22.08.2019, 18:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,629
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Yuri222, у STM32 можно хоть 8 раз по биту дописывать в байт. И это можно использовать для упрощения поиска последней записи во флеш-памяти (выделяем 8 байт и получаем счетчик на 64 записи; потом придется страницу стирать; но если на страницу не больше 64 блоков данных влезает, это будет удобно).
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
17.09.2019, 18:54
|
|
Прохожий
Регистрация: 19.05.2016
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Приветствую форумчане! Нужен совет, подзапутался. Решил перейти на STM32CubMXIDE и заодно приобрёл три маленькие платы на STM32F103C8. В STM32CubMXIDE делаю проект мигания и нажимаю загрузку. ST-LINK v2 (китайский) моргает и через несколько секунда на экране STM32CubMXIDE появляется сообщение об ошибке (причина ошибки 1 ![Горд собой](images/smilies/icon_dovl.gif) . Среда разработки не смогла распознать целевое устройство. Пробую подключиться через ST-LINK Utility, подключение устанавливается, даже что-то по идентификации кристалла отображает. Далее пробую Keil. В кейле похожее сообщение, но загрузить всё же позволяет. Беру отладочную плату STM32F3DISCOVERY. Обе среды разработки работают замечательно, без ошибок. Значит что-то не то с самим 103. Сталкивался кто с подобным? Заказал ещё пару подобных плат у другого поставщика, да и WaveShare 407. Уж что-то должно нормально заработать в режиме отладки.
|
|
|
|
19.09.2019, 12:05
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,629
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Вопрос по ld-скрипту. Нужно мне свободную память так распределить: в первых 2кБ хранятся настройки, а во всей остальной — логи.
Пишу:
Код:
|
.myvars :
{
. = ALIGN(1024);
KEEP(*(.myvars));
. = . + 2K;
} › rom
.logs :
{
. = ALIGN(1024);
KEEP(*(.logs))
} › rom |
Получаю в бинарнике: секция myvars лежит на смещении 0x3800, а секция logs — на смещении 0x4400 (а должна бы на 0x4000).
Но если я в описании myvars пишу
то секция как раз 2кБ занимает!
Что это за чудеса в решете? Вообще не понимаю, как работают ld-скрипты!
В общем, все объяснилось: я иницализировал массив одним первым членом, его размер — 44Б. В итоге 44Б + 1000Б *— уже во второй странице! Вот и получалось...
Сейчас убрал инициализацию (не нужна она все равно), все четко.
__________________
Союз Советских Социалистических Округов Северной Америки
Последний раз редактировалось eddy; 19.09.2019 в 14:07.
|
|
|
|
19.09.2019, 21:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,629
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Теперь такой вопрос: может, кто-то успешно работал со светодиодными панелями P10 ( вот такими)? Я пока даже не представляю себе, как к этому подойти! Может, SPI использовать для выдачи данных и одновременного тактирования?
А как решить проблему отсутствия мозга у китайца, который это придумал? Ведь вместо того, чтобы сделать нормальный параллельный интерфейс и за каждый такт сдвигать все изображение влево, у них какая-то дикая чересстрочная развертка (да еще и с двухбитным управлением!)... Т.е. для использования здесь DMA нужно будет из буфера экрана распихивать данные в четыре раздельных буфера! А потом уже запускать конечный автомат... Жуть какая!
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
20.09.2019, 16:23
|
|
Вид на жительство
Регистрация: 10.04.2010
Сообщений: 301
Сказал спасибо: 25
Сказали Спасибо 136 раз(а) в 79 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от eddy
|
Теперь такой вопрос: может, кто-то успешно работал со светодиодными панелями P10 (вот такими)? Я пока даже не представляю себе, как к этому подойти! Может, SPI использовать для выдачи данных и одновременного тактирования?
А как решить проблему отсутствия мозга у китайца, который это придумал? Ведь вместо того, чтобы сделать нормальный параллельный интерфейс и за каждый такт сдвигать все изображение влево, у них какая-то дикая чересстрочная развертка (да еще и с двухбитным управлением!)... Т.е. для использования здесь DMA нужно будет из буфера экрана распихивать данные в четыре раздельных буфера! А потом уже запускать конечный автомат... Жуть какая!
|
Думаю принцип у P3 не особо отличается от P10. Для P3 делал на FSMC с одним, естественно, каналом DMA.
|
|
|
|
20.09.2019, 17:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,629
Сказал спасибо: 115
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
FSMC - параллельный интерфейс. А у этой фиговины интерфейс последовательный + нужен клок... Но главное извращение — это организация последовательности свечения светодиодов.
__________________
Союз Советских Социалистических Округов Северной Америки
|
|
|
|
20.09.2019, 17:51
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
FSMC в синхронном режиме - можно. Можно и ногодрыгом сделать, ничего страшного не произойдет.
А вообще, эти дисплеи работают от одноплатников типа Малины. СТМки - только для статичной картинки. А видео гонит одноплатник. И там пофик, как делать, GPIO программно дергается, частоты проца там за глаза.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:18.
|
|