К1921ВК01Т (ARM Cortex-M4F)

32-разрядные микроконтроллеры разработки ОАО "НИИЭТ"

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

bkolbov
Сообщения: 120
Зарегистрирован: 14 дек 2015, 11:37
Предприятие: АО НИИЭТ
Откуда: Воронеж

Re: К1921ВК01Т (ARM Cortex-M4F)

Сообщение bkolbov » 13 авг 2018, 10:07

Max R писал(а):
11 авг 2018, 02:58
bkolbov писал(а):
27 июн 2018, 10:52
leontiev писал(а):
26 июн 2018, 18:31
А схема подключения дешевого STLink V2 подразумевает доп.компоненты на стороне контроллера? Или напрямую, SWDIO - на вывод B1 (JTAG TMS), SWCLK - на B2 (JTAG TCK)?
И еще один вопрос - будет ли работать с CodeMaster?
Codemaster работает только c JEM-NT-CM4, STLink и JLink не поддерживаются.
bkolbov!
J Link - единственный отладчик, который поддержан во всех популярных средах: Keil, IAR и CodeMasterARM.
| Показать
J Link.jpg
Речь шла о CodeMaster++[ARM], который поддерживает К1921ВК01Т.
CodeMasterARM - другой программный продукт.

Max R
Сообщения: 11
Зарегистрирован: 07 май 2018, 22:58
Предприятие: Cyberdyne Systems

Re: К1921ВК01Т (ARM Cortex-M4F)

Сообщение Max R » 13 авг 2018, 22:01

Pardon moi!) Не посмотрел, но думаю добавить GDB-сервер не помешало бы...

pavel
Сообщения: 2
Зарегистрирован: 17 сен 2018, 14:08
Предприятие: Университет ИТМО

Re: К1921ВК01Т (ARM Cortex-M4F)

Сообщение pavel » 17 сен 2018, 14:16

Добрый день.

Хотелось бы узнать, существует ли какая-либо документация (или, может быть, примеры) по перепрограммированию загрузочной Flash-памяти во время работы. В первую очередь интересует, есть ли аналог библиотек Flash28XXX_API_XXX.lib от Texas Instruments.

Аватара пользователя
Лашкевич
Сообщения: 117
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Contact:

Re: К1921ВК01Т (ARM Cortex-M4F)

Сообщение Лашкевич » Вчера, 11:52

Хотелось бы узнать, существует ли какая-либо документация (или, может быть, примеры) по перепрограммированию загрузочной Flash-памяти во время работы. В первую очередь интересует, есть ли аналог библиотек Flash28XXX_API_XXX.lib от Texas Instruments.
Да прямо вот главный даташит и читайте, там пять с половиной регистров на всё-про-всё...
Вот пример нашей функции дня прожига слова

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

/**
 * Функция записи 4 32-разрядных слов (или 8 16-разрядных).
 * Также осуществляет проверку возможности прожига (т.е. не пытаемся ли мы
 * прожечь битик "1" в битик "0", ведь мы можем только менять "1" на ноль,
 * а не наоброт).
 *
 * @param address - адрес, куда прожечь
 * @param dataBuf - указатель на буфер с данными (16 бит) для прожига
 * @param status - подробный результат операции
 * @param memoryType - "0" работать с основным блоком, "1" - работать с инфо-блоком
 * @return
 */
__attribute__((section(".fastcode")))
Uint16 Niiet_Flash_Write_Words(Uint32 address, Uint16* dataBuf, FLASH_ST* status, Uint16 memoryType){
	Uint32 timeOutCounter;
	Uint16 i;
	volatile Uint32 readVal, writeVal, tempVal;
	// Для начала очистим статусное слово и регистры данных.
	NT_BOOTFLASH->FCIC = 0x3;
	NT_BOOTFLASH->FMD0 = 0xFFFFFFFF;
	NT_BOOTFLASH->FMD1 = 0xFFFFFFFF;
	NT_BOOTFLASH->FMD2 = 0xFFFFFFFF;
	NT_BOOTFLASH->FMD3 = 0xFFFFFFFF;

	// Загружаем адрес, данные и шьём
	NT_BOOTFLASH->FMA = address;
	NT_BOOTFLASH->FMD0 = *((Uint32*)(dataBuf + 0));
	NT_BOOTFLASH->FMD1 = *((Uint32*)(dataBuf + 2));
	NT_BOOTFLASH->FMD2 = *((Uint32*)(dataBuf + 4));
	NT_BOOTFLASH->FMD3 = *((Uint32*)(dataBuf + 6));


	if (memoryType == MEMORY_BLOCK_MAIN) NT_BOOTFLASH->FMC = (BOOTFLASH_KEY | BOOTFLASH_CMD_WRITE);
	else if (memoryType == MEMORY_BLOCK_SECURE) NT_BOOTFLASH->FMC = (BOOTFLASH_KEY | BOOTFLASH_CMD_WRITEINFO);


	timeOutCounter = 0;
	while(NT_BOOTFLASH->FCIS == 0x0){
		timeOutCounter++;
		if (timeOutCounter > BOOTFLASH_MAX_WAITCLOCKS){
			status->FirstFailAddr = address;
			return BOOTFLASH_WRITE_TIMEOUT;
		}
	};

	// Проверяем, не получили ли ошибку
	if (NT_BOOTFLASH->FCIS_bit.OP_ERROR){
		status->FirstFailAddr = address;
		return BOOTFLASH_WRITE_HARDFAULT;
	}

	// Раз сюда дошли - всё хорошо. Очищаем статус и возвращаем успех
	NT_BOOTFLASH->FCIC = 0x3;
	return BOOTFLASH_ERROR_OK;
}
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/

pavel
Сообщения: 2
Зарегистрирован: 17 сен 2018, 14:08
Предприятие: Университет ИТМО

Re: К1921ВК01Т (ARM Cortex-M4F)

Сообщение pavel » Вчера, 14:16

Спасибо за быстрый ответ.

Ответить

Вернуться в «32-разрядные микроконтроллеры на ядре ARM Cortex»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя