Size: a a a

2020 April 19

Y

Yuri in ELECTRONIX
👌
источник

В

Василий in ELECTRONIX
источник
2020 April 20

D

Doka in ELECTRONIX
/report
источник

S

Sergey in ELECTRONIX
Кто работал в Keil: как можно в коде задать значение для конкретного регистра, т.е. у меня есть адрес и нужно по нему разместить некое значение (регистр битов конфигурации МК). Что-то никак нагуглить не получается :(

Конструкция такого вида не работает:
__O uint32_t * 0x00300000 = (uint32_t *) 0xFFFFBFFFU; //Config0
источник

ДШ

Дмитрий Шведов in ELECTRONIX
Sergey
Кто работал в Keil: как можно в коде задать значение для конкретного регистра, т.е. у меня есть адрес и нужно по нему разместить некое значение (регистр битов конфигурации МК). Что-то никак нагуглить не получается :(

Конструкция такого вида не работает:
__O uint32_t * 0x00300000 = (uint32_t *) 0xFFFFBFFFU; //Config0
а вы оптимизацию отключили?
источник

A

Alexander in ELECTRONIX
Volatile можно добавить
источник

A

Alexander in ELECTRONIX
Еще можно через окошко Memory попробовать вбить.
источник

S

Sergey in ELECTRONIX
Дмитрий Шведов
а вы оптимизацию отключили?
компилятор пишет
main.c(10): error:  #40: expected an identifier напротив адреса. Т.е. не компилируется.
источник

ДШ

Дмитрий Шведов in ELECTRONIX
Потом что значит" не работает " ? Заносится число в регистр или вы не знаете?
источник

S

Sergey in ELECTRONIX
Дмитрий Шведов
Потом что значит" не работает " ? Заносится число в регистр или вы не знаете?
Не компилируется.
источник

ДШ

Дмитрий Шведов in ELECTRONIX
Попробуйте объявить указатель а потом через него.
источник

S

Sergey in ELECTRONIX
И у меня есть смутное предчувствие, что так работать не будет. Ранее я не работал с АРМами, а у Микрочипов есть препроцессорные директивы, через которые можно указать значения регистров конфигурации или разместить некое значение по некому адресу.
источник

S

Sergey in ELECTRONIX
Дмитрий Шведов
Попробуйте объявить указатель а потом через него.
Мне в HEX файле нужно получить строку вида "по такому-то адресу записать некое значение", мне не нужно в процессе работы программы изменять его, это биты конфигурации контроллера. (т.е. указать фьюзы)
источник

T

Thorn in ELECTRONIX
Sergey
Кто работал в Keil: как можно в коде задать значение для конкретного регистра, т.е. у меня есть адрес и нужно по нему разместить некое значение (регистр битов конфигурации МК). Что-то никак нагуглить не получается :(

Конструкция такого вида не работает:
__O uint32_t * 0x00300000 = (uint32_t *) 0xFFFFBFFFU; //Config0
*((volatile uint32_t *)0x....) = 0x...;
источник

u

username in ELECTRONIX
Sergey
Мне в HEX файле нужно получить строку вида "по такому-то адресу записать некое значение", мне не нужно в процессе работы программы изменять его, это биты конфигурации контроллера. (т.е. указать фьюзы)
короче так:
volatile const uint32_t CONFIG __attribute__((at(0x08001000))) = 0xDEADBEEF;
источник

u

username in ELECTRONIX
в в прошивке это будет тут
:10100000EFBEADDE010001000100000000127A0019
источник

u

username in ELECTRONIX
пример размещения константы по адресу в RO (flash) области
источник

u

username in ELECTRONIX
@Sergey82K получилось?
источник

u

username in ELECTRONIX
Thorn
*((volatile uint32_t *)0x....) = 0x...;
а вот это как раз запись во время выполнения программы, это не оъявление
источник

T

Thorn in ELECTRONIX
username
а вот это как раз запись во время выполнения программы, это не оъявление
а речь шла про регистр
источник