Size: a a a

2020 October 12

A

Alexander in Embedded Group
uis
14-й - единственный. Остальные - мипсы
От этого 14й не перестает быть ARM.
Примеры были приведены в контексте "выпускается ли у нас ARM покруче".
источник

C

Chuvi in Embedded Group
uis
От той, на которую ты дал ссылку
а зачем они мне?
источник

u

uis in Embedded Group
Chuvi
а зачем они мне?
А мне откуда знать?
источник

C

Chuvi in Embedded Group
uis
А мне откуда знать?
Вы правда думаете, что я не видел доки на чип,  который у нас используется?
источник

u

uis in Embedded Group
Chuvi
Вы правда думаете, что я не видел доки на чип,  который у нас используется?
А мне откуда знать?
источник

D

Dima in Embedded Group
Полистал доку. Не въехал как проц определяет команды. У меня файл начинается C0 00 00 00 04 7F 00 00. Пытался разобраться что это означает и не понял.
источник

VC

V C in Embedded Group
Наверное хочу странного, но голову уже сломал..
Есть контроллер stm32F401RE - 512КБ флеши, которые порезаны на сегменты так: 4*16кб, 64кб, 3*128кб. И тут внезапно понадобилось сохранять некоторые параметры. Конечно первое что приходит в голову - сохранять во внутренней флеши по кольцу в паре секторов, неактивный сектор стирать, Ну, все знают. И обычно это делается в последних страницах флеши. НО! у этого контроллера последние страницы - по 128К.. Жаба душит отдавать под несколько не особо часто изменяемых параметров (8байт) аж половину флеши..
А если первые сектора отдать под еепром, но тогда надо каким то образом сказать компилятору что у него жизнь начинается с 0х08010000. Но как?
в линкер-скрипте прописал что флеш начинается с 0х0801000
FLASH  (rx)    : ORIGIN = 0x08010000,   LENGTH = 512K-64K
, в system_stm32f4xx.c прописал VECT_TAB_OFFSET  0x10000.
И... И тишина.
Что еще нужно сделать?
Или нельзя такое провернуть?

Плата разведена, некоторое количество уже изготовлено -> прилепить внешнюю микруху еепром нельзя.
источник

A

Alexander in Embedded Group
V C
Наверное хочу странного, но голову уже сломал..
Есть контроллер stm32F401RE - 512КБ флеши, которые порезаны на сегменты так: 4*16кб, 64кб, 3*128кб. И тут внезапно понадобилось сохранять некоторые параметры. Конечно первое что приходит в голову - сохранять во внутренней флеши по кольцу в паре секторов, неактивный сектор стирать, Ну, все знают. И обычно это делается в последних страницах флеши. НО! у этого контроллера последние страницы - по 128К.. Жаба душит отдавать под несколько не особо часто изменяемых параметров (8байт) аж половину флеши..
А если первые сектора отдать под еепром, но тогда надо каким то образом сказать компилятору что у него жизнь начинается с 0х08010000. Но как?
в линкер-скрипте прописал что флеш начинается с 0х0801000
FLASH  (rx)    : ORIGIN = 0x08010000,   LENGTH = 512K-64K
, в system_stm32f4xx.c прописал VECT_TAB_OFFSET  0x10000.
И... И тишина.
Что еще нужно сделать?
Или нельзя такое провернуть?

Плата разведена, некоторое количество уже изготовлено -> прилепить внешнюю микруху еепром нельзя.
Какой объем нужно сохранять?
источник

A

Alexander in Embedded Group
Есть несколько RTC регистров под retention
источник

VC

V C in Embedded Group
8 байт
источник

VC

V C in Embedded Group
батарейки нет.
источник

A

Alexander in Embedded Group
Вот в RTC около 32х 32-битных регистров, сохраняющих свое состояние при наличии vbat
источник

VC

V C in Embedded Group
батарейки нет
источник

A

Alexander in Embedded Group
Есть еще option bytes
источник

A

Alexander in Embedded Group
У флеши количество гарантированных циклов перезаписи - около 10к.

Реальное порядка 50...100к.
Если ее постоянно перезатирать - можно быстро (дни-недели) вывести микроконтроллер из строя.
источник

VC

V C in Embedded Group
постоянно перезатирать не буду - писать по кольцу до заполнения страницы, начинать писать другую страницу, а эту стирать. и так по кругу. мне хватит ресурса надолго.
источник

A

Alexander in Embedded Group
V C
постоянно перезатирать не буду - писать по кольцу до заполнения страницы, начинать писать другую страницу, а эту стирать. и так по кругу. мне хватит ресурса надолго.
Тогда да, норм. вариант.
А как поймешь какая запись последняя?

Или старший байт не может равняться 0хFF?
источник

VC

V C in Embedded Group
не может быть FF
источник

VC

V C in Embedded Group
там вообще в данных FFFFFFFF быть не может
источник

A

Alexander in Embedded Group
Ясно
источник