Микроконтроллер 1874ВЕ10Т

Интегральные схемы разработки АО "НИИЭТ" с повышенной стойкостью к СВ ВВФ

Модераторы: ea, Alis, pip, gurzzza, _sva_

Alex
Сообщения: 4
Зарегистрирован: 19 ноя 2024, 15:38
Предприятие: ПАО "НПО "Алмаз"

Re: Микроконтроллер 1874ВЕ10Т

Сообщение Alex »

Здравствуйте!
Почему для старта программы из внешней памяти выбран адрес 0х7000 а не 0х200000 или 0x0? При подключении внешней ПЗУ стартовый код должен располагаться по адресу ПЗУ 0х7000, хотя логично было бы разместить стартовый код с адреса ПЗУ 0х0.
С уважением, Александр.
Alex
Сообщения: 4
Зарегистрирован: 19 ноя 2024, 15:38
Предприятие: ПАО "НПО "Алмаз"

Re: Микроконтроллер 1874ВЕ10Т

Сообщение Alex »

Здравствуйте!
При попытке заполнить структуру sys_reg типа SYS_TypeDef, описывающую свойства внешней параллельной шины, выдается ошибка Error[C44] ../main.c(86,2): expression must have pointer type. Фрагмент кода:

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

  
#include "NIIET/1874VExxT/1874VE10T.h"
..........................
SYS_TypeDef sys_reg;
............................
sys_reg->BU[0]->ADDRHI = 0x28FFFF;	// CS0 setup  
В чем может быть проблема?
С уважением, Александр.
Alex
Сообщения: 4
Зарегистрирован: 19 ноя 2024, 15:38
Предприятие: ПАО "НПО "Алмаз"

Re: Микроконтроллер 1874ВЕ10Т

Сообщение Alex »

Здравствуйте!
Для доступа к устройствам на внешней шине написал две функции чтения/записи, но компилятор игнорирует header-файл. Код файла mem_io.h:

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

#ifndef MEM_IO_H_
#define MEM_IO_H_

static __inline unsigned char read_mem(unsigned char *addr);
static __inline void write_mem(unsigned char *addr, unsigned char value);

#endif /* MEM_IO_H_ */

Код файла mem_io.c:

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

#include "mem_io.h"

static __inline unsigned char read_mem(unsigned char *addr)
{
	return *(volatile unsigned char *)addr;
}

static __inline void write_mem(unsigned char *addr, unsigned char value)
{
	volatile unsigned char *local_addr = (volatile unsigned char *)addr;
	*local_addr = value;
}

Если убрать из кода static __inline, то всё компилируется нормально.
В чем может быть проблема?
С уважением, Александр.
sazonovsv
Сообщения: 57
Зарегистрирован: 02 сен 2014, 15:35

Re: Микроконтроллер 1874ВЕ10Т

Сообщение sazonovsv »

Добрый день!

1) Нет ли программы преобразования из формата ELF в формат HEX (аналогичной riscv64-unknown-elf-objcopy), но для Windows 32бита. Хотелось бы избежать переустановки Windows и нескольких десятков программ ради одного преобразования.
2) Правильно ли я понимаю, что общий LDF-файл, формируемый при создании проекта в среде CodeMaster++[28], необходимо редактировать под конкретную реализацию «железа» прикрученного к МК 1874ВЕ10АТ ?
3) Можно ли в LDF-файле объекты data_ini_table, zero_ini_table, interrupt_ini_table, ctor_table, data_тини размещать не в PSRAM (PSRAMF), а размещать в RAM0 (RAM1) ?
4) Как создать библиотечный файл (*.lib) ?
5) Как к проекту подключить библиотечный файл ?
6) Зачем в проекте «UART» при расчете коэффициента деления baud_fcoef появляется дополнительное слагаемое «0.5f» (про которое ничего нет в «Руководстве пользователя») ?
larrson
Сообщения: 12
Зарегистрирован: 04 мар 2024, 11:30
Предприятие: самозанятый

Re: Микроконтроллер 1874ВЕ10Т

Сообщение larrson »

sazonovsv писал(а): 13 апр 2026, 09:58 Добрый день!


3) Можно ли в LDF-файле объекты data_ini_table, zero_ini_table, interrupt_ini_table, ctor_table, data_тини размещать не в PSRAM (PSRAMF), а размещать в RAM0 (RAM1) ?
Добрый день! На 7 странице этой ветки выложен пример ldf-файла с перенаправлением из PSRAM в CMD0:
Вот кусочек:
// PSRAM
data_ini_table
{
FORCE_CONTIGUITY
ALIGN(4)
__data_ini_table_start = .;
INPUT_SECTIONS( $OBJECTS(.ini_addr_data*) )
__data_ini_table_end = .;
} > CMD0
ea
Администратор
Сообщения: 113
Зарегистрирован: 10 окт 2014, 09:08

Re: Микроконтроллер 1874ВЕ10Т

Сообщение ea »

sazonovsv писал(а): 13 апр 2026, 09:58 Добрый день!

1) Нет ли программы преобразования из формата ELF в формат HEX (аналогичной riscv64-unknown-elf-objcopy), но для Windows 32бита. Хотелось бы избежать переустановки Windows и нескольких десятков программ ради одного преобразования.
2) Правильно ли я понимаю, что общий LDF-файл, формируемый при создании проекта в среде CodeMaster++[28], необходимо редактировать под конкретную реализацию «железа» прикрученного к МК 1874ВЕ10АТ ?
3) Можно ли в LDF-файле объекты data_ini_table, zero_ini_table, interrupt_ini_table, ctor_table, data_тини размещать не в PSRAM (PSRAMF), а размещать в RAM0 (RAM1) ?
4) Как создать библиотечный файл (*.lib) ?
5) Как к проекту подключить библиотечный файл ?
6) Зачем в проекте «UART» при расчете коэффициента деления baud_fcoef появляется дополнительное слагаемое «0.5f» (про которое ничего нет в «Руководстве пользователя») ?

Добрый день!
1) Мы работаем с 64 разрядными ОС Windows. Можете посмотреть сборку тулчейна для 32-разрядных ОС в репозитории: https://github.com/xpack-dev-tools/risc ... -gcc-xpack
2) Это касается только размера подключенной внешней памяти.
3) Да, можно
4) CodeMaster++[28] не поддерживает создание библиотек.
5) Путь к библиотеке и название подключаемой библиотеки указывается в настройках линкера (скриншот во вложении)
6) Дополнительное слагаемое «0.5f» в формуле используется для округления до ближайшего целого числа.
Например, если в результате получили "21.2", то "21.2 + 0.5", то после отбрасывания дробной части получим 21.
Если в результате получили "21.7", то "21.7 + 0.5", то после отбрасывания дробной части получим 22.

Изображение
Вложения
Рисунок
Рисунок
Ответ.png (36.62 КБ) 411 просмотров
Ответить

Вернуться в «Радиационно-стойкие интегральные схемы»