Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам > Устройства на ARM процессорах

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.11.2014, 21:30   #11
HiddenPilot
Member
 
Регистрация: 07.03.2013
Сообщений: 75
Вес репутации: 0
HiddenPilot is an unknown quantity at this point
По умолчанию Re: Maple Mini

Ну и еще хорошая новость.
не далее как месяц назад один хороший человек сделал удачную поделку. Скрестил ужа с носорогом, а именно синтегрировал maplelib и Arduino IDE 1.5.7 и выше. Теперь можно создавать и компилорвоать коды для мапле и Ардуино из одной и тоже программы.

Но самое главное в Arduino используется новй GCC компилятор, с помощью него удалось увеличить быстродействие ногодрыга с считыванием инфы на 35%: с 32(2,25Мгц) тактов до 23(3,12МГц), и это думаю не предел.
Мало того в Arduino IDE довольно таки просто обновляется компилятор. Достаточно скачать новую версию компилятора с сайа https://launchpad.net/gcc-arm-embedded , и заменить им все содержимое папки: C:\arduino-1.5.8\hardware\tools\gcc-arm-none-eabi-4.8.3-2014q1

для того чтобы самим скрестить ежа с носорогом. качаем самую свежую версию ARDUINO IDE (не ниже 1.5.7). Скачиваем отсюда архив с либой https://github.com/bobc/maple-asp . Из в архиве находим папку Maple-asp и копируем ее в C:\arduino-1.5.8\hardware . Запускаем IDE и наслаждаемся.
Несколько особенностей компилировать в память у меня получилось только при выборе "Maple Rev.3 to RAM".

Также (но это специфика китайской версии) при перекулючении режима заливки с RAM на Flash, после заливки программы в контроллер, программа всеравно стартует из RAM. Чтобы программа начала стартовать из Flash нужно передернуть питание контроллера. Но это нужно делать только в случае переключении с Ram на Flash, и только после заливки скетча в контроллер.
Кстати с Flash программа зачастую выполняется слегка медленнее. Но не всегда, бывает и наоборот. (все зависит от телепатических способностей модуля предвыборки команд). если отключить этот буфер то при ситывании каждой команды, процессор простыми NOP'ами будет пропускать до 3х тактов.
Цитата:
http://radiohlam.ru/teory/stm32_6.htm
Если мы работаем с flash-памятью, а не перегружаем программу в оперативку, то для оптимальной работы нашего камня должны быть настроены ещё кое-какие опции.

Во-первых, нужно задать параметр, называемый Latency. Это количество циклов задержки для операций чтения из flash. Оно задаётся исходя из следующих правил:
=0, если 0 ≤ SYSCLK ≤ 24 MHz;
=1, если 24 MHz ≤ SYSCLK ≤ 48 MHz;
=2, если 48 MHz ≤ SYSCLK ≤ 72 MHz.

Во-вторых, для ускорения работы процессора, должен быть включен буфер предварительной выборки (prefetch buffer), который позволяет вычитывать инструкции из flash двумя 64-х битными блоками. Включить или выключить этот буфер можно только когда SYSCLK < 24 MHz и делитель шины AHB=1. После сброса он автоматически включается, поэтому нам ничего делать не нужно. Но обычно если его хотят выключить, то делают это в самом начале программы, при инициализации, когда контроллер ещё работает от внутреннего генератора 8 MHz.

Обе перечисленные выше настройки flash-памяти доступны в регистре FLASH_ACR.
HiddenPilot вне форума   Ответить с цитированием
 


Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
 

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:04. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика