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

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

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

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

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

Сообщение R Max » 16 апр 2016, 14:06

Так как официального .pack для Keil 5 до сих пор нет, решил сделать самопальный https://yadi.sk/d/P5hlwFHzr3d49

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

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

Сообщение R Max » 17 апр 2016, 18:08

В файле констант K1921BK01T_enum.h заменил все ключевые слова enum на typedef enum, иначе линкер Keil жалуется на двойное определение... https://yadi.sk/d/s2ddfeSHr4mhN

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

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

Сообщение MR.Smith » 27 апр 2016, 14:55

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

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

Изображение

Спасибо!

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

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

Сообщение MR.Smith » 27 апр 2016, 16:38

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

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

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

Сообщение MR.Smith » 28 апр 2016, 10:38

Наткнулся на странную ошибку.
В Keil со стандартным ARM компилятором 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 » 01 май 2016, 13:56

У меня такой код работает, это что-то в основной программе значит...

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

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

Сообщение MR.Smith » 04 май 2016, 11:26

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

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

У производителя вообще есть какие-нибудь рекомендации по компилятору? А то, может быть, я зря пытаюсь использовать Keil ARM Compiller и надо применять априори GCC ARM Embedded ?

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

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

Сообщение MR.Smith » 04 май 2016, 17:52

Похоже, что я неверно настроил Keil. Или дело действительно в компиляторе.
Все вышеописанные проблемы не воспроизводятся в VectorIDE с использованием компилятора GCC ARM Embedded.

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

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

Сообщение Лашкевич » 05 май 2016, 14:13

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

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

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

Сообщение R Max » 09 май 2016, 18:14

MR.Smith писал(а): У производителя вообще есть какие-нибудь рекомендации по компилятору? А то, может быть, я зря пытаюсь использовать Keil ARM Compiller и надо применять априори GCC ARM Embedded ?
=) https://en.wikipedia.org/wiki/ARM_Holdings
ARM Holdings plc (ARM) is a British multinational semiconductor and software design company headquartered in Cambridge, England. Its primary business is in the design of ARM 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] ARM also acquired the engineering team of PowerEscape.

Ответить

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

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

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