Миландр

Ключевым подразделением нашей компании
является Центр Проектирования интегральных микросхем
Текущее время: 2019-июн-25 15:23

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Примеры программ
СообщениеДобавлено: 2013-окт-31 10:31 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
Пример использования блока шифрования.
Также важна последовательность работы с иммитовставкой (отражено в примере).

В спецификации на стр. 703 обнаружена ошибка, нужно исправить на следующее:
0x3000_0090 0x0048 CRPT_CR
0x3000_0094 0x004A CRPT_SYNR

Процедуру использования блока шифрования надо оформлять как функцию и выполнять только в режиме free run в среде CCS3.


Вложения:
_dsp_crypt_immit.rar [147.4 КБ]
Скачиваний: 343


Последний раз редактировалось Petr 2013-ноя-20 16:59, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2013-ноя-15 14:41 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
Пример работы с термодатчиком.


Вложения:
Temperature.rar [216.01 КБ]
Скачиваний: 408
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2014-ноя-12 19:42 
Не в сети

Зарегистрирован: 2010-июл-08 08:50
Сообщения: 734
Откуда: АО "ПКК Миландр"
Пример и инструкция по размещению программы для DSP-ядра внутри Flash-памяти контроллера 1901ВЦ1Т.


Вложения:
Комментарий к файлу: два простых проекта и утилиты
RISC_DSP_loader.zip [496.15 КБ]
Скачиваний: 380
Комментарий к файлу: инструкция
Как_расположить_DSP_программу_без_использования_средств_отладки_в_1901ВЦ1.pdf [480.32 КБ]
Скачиваний: 638
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2018-апр-18 08:41 
Не в сети

Зарегистрирован: 2018-апр-14 09:44
Сообщения: 1
Добрый день! А есть проект конвертера .out-файла в header-файл(не .exe проекта)? Не открывается сам конвертер.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2018-окт-29 20:24 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1289
Откуда: Тула
Good news, everyone!
Появился К1901ВЦ1QI в пластике LQFP144.

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2018-ноя-26 17:56 
Не в сети

Зарегистрирован: 2017-июл-22 16:56
Сообщения: 5
Доброго дня. В программе для DSP из архива RISc_DSP_loader, инициализирована переменная _status, а в программе для RISC к этой переменной идёт обращение по адресу 0хА540. Вопрос, откуда известно, что она находится именно по этому адресу? В программе для DSP это число нигде не встречается.

Ответ: Адрес _STATUS для размещения переменной _status расположен в файле с расширением .cmd.

Так же ответ на вопрос выше. Если конвертер DSP_ASCII_2_FILE_Conv.exe не запускается, добавьте к нему файлы из прикрепленного архива.


Вложения:
For_DSP_ASCII_2_FILE_Conv.rar [850.66 КБ]
Скачиваний: 74
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2019-апр-02 08:05 
Не в сети

Зарегистрирован: 2017-июл-22 16:56
Сообщения: 5
Доброго дня. Столкнулся с проблемой в CCS v.3.3 при программировании 1901ВЦ1. Объявляю переменную long int x. Далее пишу выражение: х=(8188*8188)+(8188*8188); В компиляторе получаю предупреждение: integer operation result is out of range, т.е. результат больше переменной. Результат выражения выше равен 134086688, в памяти я вижу 00 00 00 20, а проидее должен 07 FE 00 20, так как long int вмещает +/-21474833647, в чем кроется ошибка? Просьба подсказать. И как завершение если пишу выражение х=134086688; то предупреждений не получаю и в памяти вижу заветное 07 FE 00 20, да как так-то?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2019-апр-02 08:47 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 436
с данной средой/МК не работал, поэтому предположу (не уверен)
если int 16 разрядов, то все выражение считается в интах, а потом преобразовывается к long.
(на 8-ми битниках похожее было)
Попробуйте
х=(long)(8188*8188)+(long)(8188*8188);
или
х=(long)(8188L*8188)+(long)(8188L*8188);

_________________
О сколько нам открытий чудных
Готовит просвященья дух,
И опыт - сын ошибок трудных ... (Пушкин)

Пергаменты не утоляют жажду ("Фауст",Гете)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2019-апр-02 09:42 
Не в сети

Зарегистрирован: 2017-июл-22 16:56
Сообщения: 5
Спасибо за помощь! Выражение х=(8188L*8188)+(8188L*8188); Работает в памяти вижу заветное число. Но если перейти дальше, в ходе программы должно реализовываться выражение х=(a*b)+(c*d);
Где a,b,c,d переменные принимающие значения от -8188 до 8188. Если реализовать такой код:
a=8188;
b=8188;
c=8188;
d=8188;
dх=(a*b)+(c*d);
В памяти вижу опять 00 00 00 20.
Подскажите пожалуйста как в этом случае сделать? Ведь L тут добавить неполучается. Могли бы вы подсказать статью где прочитать про данный идентификатор?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2019-апр-02 09:57 
Не в сети

Зарегистрирован: 2009-июл-21 14:13
Сообщения: 1289
Откуда: Тула
1max1 писал(а):
Спасибо за помощь! Выражение х=(8188L*8188)+(8188L*8188); Работает в памяти вижу заветное число. Но если перейти дальше, в ходе программы должно реализовываться выражение х=(a*b)+(c*d);
Где a,b,c,d переменные принимающие значения от -8188 до 8188. Если реализовать такой код:
a=8188;
b=8188;
c=8188;
d=8188;
dх=(a*b)+(c*d);
В памяти вижу опять 00 00 00 20.
Подскажите пожалуйста как в этом случае сделать? Ведь L тут добавить неполучается. Могли бы вы подсказать статью где прочитать про данный идентификатор?

Здесь надо таки подучить сам язык Си, в части целых типов данных.
Суть проблемы в том, что компилятор полноправно определяет тип константы 8188 как int (было бы число, не влезающее в int - объявлялось бы как long int, а может и дальше - зависит от копмилятора).
Результат же произведения таких чисел в int уже не влазит, но компилятор этого не анализирует.
Результат произведения имеет тот же тип int, поэтому происходит отсечение старшей части результата произведения.
Добавляя к константе литеру L сообщаем компилятору, чтобы он хранил константу в типе long int.
Далее все вычисления происходят уже с типом long int и поэтому выходной тип так же long int и усечения результата не происходит.
Во втором случае также достаточно определить a,b,c,d как long int, и тогда все вычисления пройдут корректно.
Или можно сделать явное приведение типов непосредственно в строке с вычислением
Код:
х = ( (long int)a * (long int)b ) + ( (long int)c * (long int)d );

_________________
сочувствующий…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2019-апр-02 10:43 
Не в сети

Зарегистрирован: 2017-июл-22 16:56
Сообщения: 5
Благодарю за помощь. Действительно проглядел этот момент, первый раз столкнулся с данной проблемой, немного запутал. Например в Keil, такой проблемы невстричал никогда.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Примеры программ
СообщениеДобавлено: 2019-апр-02 11:51 
Не в сети

Зарегистрирован: 2010-авг-30 19:12
Сообщения: 436
Цитата:
Keil, такой проблемы невстричал никогда.

Просто вы в KEIL с 51-ми (восьмибитниками) не работали.

_________________
О сколько нам открытий чудных
Готовит просвященья дух,
И опыт - сын ошибок трудных ... (Пушкин)

Пергаменты не утоляют жажду ("Фауст",Гете)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB