Быстрый старт с МК K1921BK01T

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

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

R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

Re: Быстрый старт с МК K1921BK01T

Сообщение R Max »

Так как официального .pack для Keil 5 до сих пор нет, решил сделать самопальный https://yadi.sk/d/P5hlwFHzr3d49
R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

Re: Быстрый старт с МК K1921BK01T

Сообщение R Max »

В файле констант K1921BK01T_enum.h заменил все ключевые слова enum на typedef enum, иначе линкер Keil жалуется на двойное определение... https://yadi.sk/d/s2ddfeSHr4mhN
Аватара пользователя
MR.Smith
Сообщения: 78
Зарегистрирован: 25 апр 2016, 10:56

Re: Быстрый старт с МК K1921BK01T

Сообщение MR.Smith »

-=Sergei=- писал(а): Далее пока предположение, что контроллер Flash не успевает запрограммировать память. Маленькие программки шьются, а вот большие выпадают по таймауту при программировании. Увеличил в FLM "Erase Sector Timeout 3000 mSec" до 30000. Заработало. Достаточно ли этого, не знаю, нужно знать как работает ваш контроллер Флеша.
Выложите пожалуйста на форум ваш вариант файла "K1921BK01T.FLM".

В каталоге C:\Keil\арм\Flash\K1921BK01T я открыл проект с алгоритмом программирования флешки и в файле "FlashDev.c" поправил соответствующее значение на 30000 как Вы и советовали. Пересобрал, подменил FLM.
Однако, все равно получаю ошибку при размере программы чуть больше (2000 байт), чем "совсем маленькая" (1732 байт).

Изображение

Спасибо!
Аватара пользователя
MR.Smith
Сообщения: 78
Зарегистрирован: 25 апр 2016, 10:56

Re: Быстрый старт с МК K1921BK01T

Сообщение MR.Smith »

MR.Smith писал(а): В каталоге C:\Keil\арм\Flash\K1921BK01T я открыл проект с алгоритмом программирования флешки и в файле "FlashDev.c" поправил соответствующее значение на 30000 как Вы и советовали. Пересобрал, подменил FLM.
Однако, все равно получаю ошибку при размере программы чуть больше (2000 байт), чем "совсем маленькая" (1732 байт).
Проблему решил путем увеличения таймаута записи страницы флешки (параметр "Program Page Timeout") до 1000 mSec.
Аватара пользователя
MR.Smith
Сообщения: 78
Зарегистрирован: 25 апр 2016, 10:56

Re: Быстрый старт с МК K1921BK01T

Сообщение MR.Smith »

Наткнулся на странную ошибку.
В Keil со стандартным арм компилятором Keil программа падает в HardFault_Handler при попытке преобразования типа:

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

int varInt = 12;
float varFloat;
...
varFloat = (float)varInt;
FPU для одинарной точности включен. Но и без него ситуация аналогичная.

Переношу проект с CCS. У компилятора TI проблем здесь не было.
Кто-нибудь сталкивался с подобной проблемой? Как лечить?
R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

Re: Быстрый старт с МК K1921BK01T

Сообщение R Max »

У меня такой код работает, это что-то в основной программе значит...
Аватара пользователя
MR.Smith
Сообщения: 78
Зарегистрирован: 25 апр 2016, 10:56

Re: Быстрый старт с МК K1921BK01T

Сообщение MR.Smith »

R Max писал(а):У меня такой код работает, это что-то в основной программе значит...
Действительно, в чистом проекте все ОК.
Вообще в keil 5 с их стандартным компилятором происходят какие-то чудеса.
Произвольный кусок кода, который совершенно корректно работал на TMS320F28335 и STM32F429ZI, может вызвать HardFault_Handler и даже изменения тактовой частоты процессора!
При попытке провести несколько элементарных математических операций в ряде случаев я столкнулся с тем, что процессор начинает "тикать" в десятки раз медленнее. И это при том, что после инициализации я совершенно не трогаю регистры PLL. Например, банальная операция сравнения в некоторых случаях вызывает такой эффект.
Мистика...

Сейчас пока отложил Keil в сторону. Попробую повторить все в Vector IDE с компилятором GCC арм Embedded.

У производителя вообще есть какие-нибудь рекомендации по компилятору? А то, может быть, я зря пытаюсь использовать Keil арм Compiller и надо применять априори GCC арм Embedded ?
Аватара пользователя
MR.Smith
Сообщения: 78
Зарегистрирован: 25 апр 2016, 10:56

Re: Быстрый старт с МК K1921BK01T

Сообщение MR.Smith »

Похоже, что я неверно настроил Keil. Или дело действительно в компиляторе.
Все вышеописанные проблемы не воспроизводятся в VectorIDE с использованием компилятора GCC арм Embedded.
Аватара пользователя
Лашкевич
Сообщения: 372
Зарегистрирован: 13 май 2015, 13:10
Предприятие: ООО "НПФ Вектор"
Откуда: Москва
Контактная информация:

Re: Быстрый старт с МК K1921BK01T

Сообщение Лашкевич »

Проблема может быть еще с неверной инициализацией регистров тактирования и задержки флеш-памяти. От этого сам микроконтроллер может начать глючить при некоторых специфических операциях. Также операции с плавающей точкой могут генерировать очень разный ассемблерный код - надо проверять, что там нагенерилось, аппаратные ли это команды, те ли они, какие должны быть, или это вообще вызовы несуществующих библиотек и т.п.
С уважением,
Лашкевич Максим.
Инженер-программист ООО "НПФ Вектор", Москва.
http://motorcontrol.ru/
R Max
Сообщения: 48
Зарегистрирован: 28 ноя 2015, 19:44

Re: Быстрый старт с МК K1921BK01T

Сообщение R Max »

MR.Smith писал(а): У производителя вообще есть какие-нибудь рекомендации по компилятору? А то, может быть, я зря пытаюсь использовать Keil арм Compiller и надо применять априори GCC арм Embedded ?
=) https://en.wikipedia.org/wiki/арм_Holdings
арм Holdings plc (арм) is a British multinational semiconductor and software design company headquartered in Cambridge, England. Its primary business is in the design of арм processors (CPUs), although it also designs software development tools under the DS-5, RealView and Keil brands
2005[edit]
KEIL Software, a leading developer of software development tools for the microcontroller (MCU) market, including 8051 and C16x platforms.[39] арм also acquired the engineering team of PowerEscape.
Ответить

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