Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/96: Рейтинг темы: голосов - 96, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 64

Keil MDK-ARM

15.07.2013, 17:52. Показов 18803. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На руках имеют две демонстрационные платки от ST: STM32VL omd STM32F4
Есть некоторые идеи, которые хотелось бы реализовать, но опыта и знаний мало. В связи с этим возник вопрос. Есть ли хорошая литература по компилятору в keil с описанием функций и прочего? Возможно что-то наподобие Manual Или на первых порах легче начать с изучения библиотечных мануалов от ST?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.07.2013, 17:52
Ответы с готовыми решениями:

Keil MDK-ARM Version 5
Вышла 5-я версия. Из замеченных глюков, на мой взгляд ничего не изменилось ) Ярлык стал зеленным. ...

Keil MDK-ARM 5.11.0.0 Странное поведение CallStack
Столкнулся с явлением, которое не очень укладывается в моём сознании. Суть такова: При отладке в окне "Call Stack" появляются...

Keil MDK ARM 5 + Tiva C = полнейшая каша в голове
Разбираюсь тут с платкой http://www.ti.som/tool/ek-tm4c123gxl на TM4C123GH6PM. Установил Keil, библиотеки, скачал учебных проектов, всё...

29
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 64
05.08.2013, 18:05
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от OtyxPM
Цитата Сообщение от yzy125
массив 50*50 - откуда получается 5 Кб? 1 элемент - 1 байт, а элементов там 2500 или где то я недопонял?
uint16_t - два байта на элемент. Смотрите свой пост, где впервые пожаловались на двумерные массивы. Там uint16_t.

дурак, понял.
а uint8_t - 1 байт?
0
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 64
05.08.2013, 18:11
Цитата Сообщение от OtyxPM
Цитата Сообщение от yzy125
массив 50*50 - откуда получается 5 Кб? 1 элемент - 1 байт, а элементов там 2500 или где то я недопонял?
uint16_t - два байта на элемент. Смотрите свой пост, где впервые пожаловались на двумерные массивы. Там uint16_t.

спасибо, надо переделывать подход к хранению картинки.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
05.08.2013, 18:28
Цитата Сообщение от yzy125
Цитата Сообщение от OtyxPM
Проверьте распределение SROM по .map-файлу: на что ОЗУ израсходовалось..
чтоб я в нем что-нибудь понимал.

Total RW Size - как понимаю это и есть загрузка оперативки?Да. А ещё на каждую переменную, каждый массив, каждую структуру указан занимаемый размер. Ищите по имени. Где тип "Data" - это в ОЗУ. Например, для массива uint8_t SD_blk_buffer[512] нахожу в .map-файле в разделе "Global Symbols":
Code
1
SD_blk_buffer    0x20000248   Data         512  sdcard_spi.o(.bss)
Сразу вижу, что "оно" живёт в ОЗУ, размещается там с адреса 0x20000248 и занимает полкилобайта.
0
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 64
06.08.2013, 10:51
Спасибо. Разобрался, пересобрал, заработала почти как надо.

возвращаясь к умножению частоты.
Code
1
2
3
4
      RCC->CFGR |= RCC_CFGR_PLLMULL3; //задаем множитель 3 для выходной частоты
RCC->CR |= RCC_CR_PLLON; //включаем PLL
RCC->CFGR |= RCC_CFGR_SW_PLL; //определяем PLL как системные часы
RCC->CFGR |= RCC_CFGR_SWS_PLL; // PLL используется как системные часы
кварц на 8МГц, по RM - выходная частота с PLL должна лежать в интервале 16-24 МГц. Собственно ничерта не получается, частота изменяется только при смене кварца.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
06.08.2013, 13:18
Цитата Сообщение от yzy125
кварц на 8МГц, по RM - выходная частота с PLL должна лежать в интервале 16-24 МГц. Собственно ничерта не получается, частота изменяется только при смене кварца.
В этом МК уж очень грубые (четырёхбитовые всего-то) коэффициенты деления/умножения в PLL. Получается мало вариантов :-( .
Попробуйте умножать на 4, а не на 3. Заодно узнаем, выдержит ли МК частоту 32МГц :-) Если не секрет, Вы до скольки намерены разгонять-то?

Как вариант - попробуйте и кварц заменить. Только выберите такой, чтобы делением/умножением PLL можно было получить требуемую частоту. Например: 10MHz/2*5=25MHz; 16MHz/3*5=27MHz, и т.д.
0
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 64
06.08.2013, 14:32
Цитата Сообщение от OtyxPM
Попробуйте умножать на 4, а не на 3. Заодно узнаем, выдержит ли МК частоту 32МГц :-) Если не секрет, Вы до скольки намерены разгонять-то?
24 впринципе хватить уже должно, 32 будет даже с запасом. сейчас стоит 20 и работает сносно,хотя косяки ползают по экрану.

вопрос в том, правильно ли выставил все биты? и нужно ли указывать источник для PLL? если да, то как?
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
06.08.2013, 15:15
Цитата Сообщение от yzy125
правильно ли выставил все биты? и нужно ли указывать источник для PLL? если да, то как?
PLLSRC бит надо ставить в единицу (при выключенном PLL), если хотите подавать частоту от внешнего кварца, а не от внутреннего RC-осциллятора.

Я бы не заморачивался так с самодельной функцией настройки. ST даёт же всё готовое и гарантированно работающее. Скачайте их код (они его для Вас же писали), используйте как основу, чуть-чуть модифицируйте. И не будет сомнений: какие биты, в каком порядке, по каким условиям...
0
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 64
06.08.2013, 15:30
Цитата Сообщение от OtyxPM
ST даёт же всё готовое и гарантированно работающее. Скачайте их код (они его для Вас же писали), используйте как основу, чуть-чуть модифицируйте. И не будет сомнений: какие биты, в каком порядке, по каким условиям...
с моим умением не видеть яйцо на пустом столе...
Как пониммаю через RCC библиотеку менять?
0
0 / 0 / 0
Регистрация: 08.07.2013
Сообщений: 64
08.08.2013, 11:26
Доброго времени суток.
Война с частотой продолжается.
Собственно задача все таже, получиться частоту ядра в 24МГц.
При смене кварца на 20 МГц у МК слечатает тактовка частоты для USORT. Собственно из - за чего и где выставлять итоговую частоту?
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 886
08.08.2013, 19:54
Вам поможет имение читать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.08.2013, 19:54

Как возможно в Keil uVision MDK-ARM выполнять арифметические операции над числами до генерации кода?
Если правильно понимаю, то прекомпилятор языка Си производит только подстановку по директивам без арифметических вычислений, а далее...

Сравнить программные продукты Keil uVision 5.11.2.0 и Keil ARM 5.29.0.0
прив! программные среды разработки Keil uVision 5.11.2.0 и Keil ARM 5.29.0.0 это просто разные версии одной и той же среды или...

асм в mdk-arm
Кто нибудь знает как сделать в кейле асм вставку? Гугл не помог, все что нашлось это для кейл-ц51 но в mdk-arm оно не работает(#pragma ASM).

Проблема с MDK-ARM 4.74
Здравствуйте, друзья! Решил перейти с CooCox на MDK-ARM 4.74. Скачал с офф. сайта, установил, запускаю от админа, но вот незадача -...

Клоны ULINK2 и Keil MDK 4.13a и 4.14
После выхода Keil MDK ARM 4.13a владельцев клонов ULINK2, которых, подозреваю больше, чем владельцев оригинальной версии устройства,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
Кто сможет объяснить тихое удаление авторских алгоритмов с Хабра без замечаний и объяснений?
Hrethgir 05.08.2026
Администрация Хабра причин удаления не объясняет. Может это кто сделает другой? Алгоритм эффективен и рабочий, ошибка было только в пагинации сообщений, что является отдельным алгоритмом а не. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru