Здравствуйте!
Почему для старта программы из внешней памяти выбран адрес 0х7000 а не 0х200000 или 0x0? При подключении внешней ПЗУ стартовый код должен располагаться по адресу ПЗУ 0х7000, хотя логично было бы разместить стартовый код с адреса ПЗУ 0х0.
Микроконтроллер 1874ВЕ10Т
Модераторы: ea, Alis, pip, gurzzza, _sva_
Re: Микроконтроллер 1874ВЕ10Т
С уважением, Александр.
Re: Микроконтроллер 1874ВЕ10Т
Здравствуйте!
При попытке заполнить структуру sys_reg типа SYS_TypeDef, описывающую свойства внешней параллельной шины, выдается ошибка Error[C44] ../main.c(86,2): expression must have pointer type. Фрагмент кода:
В чем может быть проблема?
При попытке заполнить структуру 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
С уважением, Александр.
Re: Микроконтроллер 1874ВЕ10Т
Здравствуйте!
Для доступа к устройствам на внешней шине написал две функции чтения/записи, но компилятор игнорирует header-файл. Код файла mem_io.h:
Код файла mem_io.c:
Если убрать из кода static __inline, то всё компилируется нормально.
В чем может быть проблема?
Для доступа к устройствам на внешней шине написал две функции чтения/записи, но компилятор игнорирует 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_ */
Код: Выделить всё
#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;
}
В чем может быть проблема?
С уважением, Александр.
Re: Микроконтроллер 1874ВЕ10Т
Добрый день!
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) Нет ли программы преобразования из формата 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» (про которое ничего нет в «Руководстве пользователя») ?
Re: Микроконтроллер 1874ВЕ10Т
Добрый день! На 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
