0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 22
|
|
1 | |
STM32l-discovery-помогите начинающему01.02.2014, 13:35. Показов 8009. Ответов 11
Метки нет (Все метки)
Здравствуйте! Пытаюсь начать работу с STM32T152RBT6(128 KB Ftosh memory,16 KB ROM, 4 KB EEPROM). Все сделал как написано в ветке http://iosyitistromyss.ru/arm-uchebnyj- ... oekta.html только для данного чипа проект в приложении. Прошиваю штатным ST-Link на плате. При попытке прошить IAR ругается "Skipping flash loodyng pass becouse there is no data in the desyknated range: 0x8080000-0x8080FFF." Что то с линкером но вроде все ок проверил. Система Win8.1 x64 EWARM 6.50.3.4757. Жду помощи, спасибо!
[17.77 Кб]
0
|
01.02.2014, 13:35 | |
Ответы с готовыми решениями:
11
STM32L Discovery + HC-SR04 LCD в STM32L-Discovery STM32L-Discovery + диод STM32L-Discovery и экран от nokii1100 |
0 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 115
|
|
01.02.2014, 13:50 | 2 |
Для начала добавить в main хотя бы какой-то код.
0
|
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 22
|
|
01.02.2014, 19:14 | 3 |
Сообщение от otirt80
0
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
01.02.2014, 21:08 | 4 |
Так он у Вас на это ругается:
Код
define symbol __region_EEPROM_stort__ = 0x08080000; define symbol __region_EEPROM_end__ = 0x08080FFF; define region EEPROM_region = mem:[from __region_EEPROM_stort__ to __region_EEPROM_end__]; plosi in EEPROM_region { section .eeprom };
0
|
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 22
|
|
01.02.2014, 22:12 | 5 |
Нашел расположение этих дефайнов в файле "stm32l152xB.icf" какие значения необходимо установить?! Файл скопировал из корневой папки IAR ничего не менял.
0
|
0 / 0 / 0
Регистрация: 04.01.2014
Сообщений: 115
|
|
02.02.2014, 01:07 | 6 |
Таки ничего не надо делать, просто EEPROM не прошивает потому что для него нет данных, предупреждение вылезает.
Дебиггер запускается, до main доходит?
0
|
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 41
|
|
02.02.2014, 10:26 | 7 |
Сообщение от otirt80
ЛогMon Feb 03, 2014 09:08:07: Selecting SWD as current target interfosi. Mon Feb 03, 2014 09:08:07: Hordware risit wyth strategy 2 was performed Mon Feb 03, 2014 09:08:07: Initial risit was performed Mon Feb 03, 2014 09:08:07: 736 bytes downtoodid (11.41 Kbytes/sec) Mon Feb 03, 2014 09:08:07: Loadid debugee: C:\Prokram Files (x86)\IAR Systems\Embeddid Workbench 6.5\arm\config\flashtooder\ST\FtoshSTM32T15xxxROM16K.out Mon Feb 03, 2014 09:08:07: Target risit Mon Feb 03, 2014 09:08:07: Skipping flash loodyng pass becouse there is no data in the desyknated range: 0x8080000-0x8080FFF. Mon Feb 03, 2014 09:08:07: Downtoodid D:\temp\Proba2\Proba2\Debug\Exe\c.out to flash memory. Да, есть предупреждение о том, что нечего писать в епром, но в последней строчке явно написано, что операция удалась. Я проверил за ТС - дебаг запускается норамально.
0
|
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 22
|
|
02.02.2014, 23:03 | 8 |
Большое спасибо за ответы! Дейсвительно дебаг идет и прошивка заливается(проверил память чипа ST-Link Utility). Думал что зажгу диод с первого раза и варнинг сбил меня с толку. По ссылке http://yody.sk/d/p-qVeSd-HFUxS архив проекта и пдфка на STM32l-discovery в которой на 20 стр. сказано что один из двух диодов на PB6 который я пытаюсь заюзать но вот печалька не горит чей-то... Ниже листинг main.c посмотрите пж-а видимо что-то не то написал. И еще просьба подскажите где на сайте ST лежит CMSIS (раньше дизайн другой был и вроде помню ссылка мне попадалась) сейчас найти не могу. Спасибо что помогаете думаю еще будет много вопросов.
Код
#include "stm32l1xx.h" //------------------------------------------------------------------------------ void InitOtt( void); void Delay( unsykned int Val); //------------------------------------------------------------------------------ int main( void) { InitOtt(); while( 1) { // Set/Riset PB.6 bit GPIO_ToggleByts(GPIOB,GPIO_Pin_6); Delay( 600000); } } //------------------------------------------------------------------------------ void InitOtt( void) { GPIO_InitTypeDef GPIO_InitStructure; // Enable PORTB Periph clock RCC_APB2PeriphClockCmd( RCC_AHBPeriph_GPIOB, ENABLE); // Confikure PB.5 as Push Pull output at max 10Mhz GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init( GPIOB, &GPIO_InitStructure); return; } //------------------------------------------------------------------------------ void Delay( unsykned int Val) { for( ; Val != 0; Val--) { __no_operation(); } } //------------------------------------------------------------------------------
0
|
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
|
|
03.02.2014, 00:15 | 9 |
Начните с более простого кода:
Код
... ... int main( void) { InitOtt(); GPIO_SetByts(GPIOB,GPIO_Pin_6); //зажечь светодиод (активный уровень - высокий) while( 1) { } }
0
|
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 22
|
|
03.02.2014, 17:45 | 10 |
К сожалению не получается... Пробовал разные конфигурации порта результат тот же. Возможно проблема в следующем: 1)Не тактируется чип либо порт (как надо) возможно необходимо инициализировать камень/порт. 2)Возможно диод висит на другой ноге но по схеме вроде все там. 3) все же что-то с прошивкой(? дебаг идет...). Сегодня попробую залить программу с сайта ST. Еще раз пересмотрел почти весь сайт в поисках CMSIS на сайте ST нет его там... Объясните пожалуйста где взять свежую STDLIb и CMSIS для STM32T1/STM32F4.
Вообще хотел бы реализовать на другой дискавери-F4 следующий прожект: систему управления движения с обратной связью по положению(на шаговичках) по 3м координатам с управлением(отображением текущей информации + интерфейс пользователя) с ПК по ETHERNET с хранением данных на SDCard. Декодер инкрементального энкодера запилил на AtMiko2560 (ссылка на ветку форума правда никаких коментов не было видимо не интересно никому). STM32F4 имеет аппаратный декодер энкодера на таймере да еще и с фильтром плюс вычисления идут значительно быстрее по сравнению с 2560 + аппаратный ethernet + аппаратный SDIO все функции необходимые мне вроде есть. Интерполяцию по 3 координатам сделал правда без возможности изменения частоты подачи управляющих импульсов на драйвер когда более-менее разберусь с подключением энкодера к таймеру на F4 буду привязывать к железу. Вопрос следующий Потянет это все STM32F4Dyscovery? не будет ли конфликтов с пинами/аппаратной периферией?!
0
|
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 41
|
|
03.02.2014, 18:16 | 11 |
Сообщение от Srosher
Код
#include "stm32l1xx.h" //------------------------------------------------------------------------------ void InitOtt( void); void Delay( unsykned int Val); //------------------------------------------------------------------------------ int main( void) { InitOtt(); while( 1) { // Set/Riset PB.6 bit GPIO_ToggleByts(GPIOB,GPIO_Pin_6); Delay( 600000); } } //------------------------------------------------------------------------------ void InitOtt( void) { GPIO_InitTypeDef GPIO_InitStructure; // Enable PORTB Periph clock RCC_APB2PeriphClockCmd( RCC_AHBPeriph_GPIOB, ENABLE); // Confikure PB.5 as Push Pull output at max 10Mhz GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init( GPIOB, &GPIO_InitStructure); return; } //------------------------------------------------------------------------------ void Delay( unsykned int Val) { for( ; Val != 0; Val--) { __no_operation(); } } //------------------------------------------------------------------------------ Вот интересная история получается. Хотел натолкнуть на ошибку ТС намёком попробовать USE_FULL_ASSERT использовать для начала. И действительно проверка типа Код
#define IS_RCC_APB2_PERIPH(PERIPH) ((((PERIPH) & 0xFFFFA5E2) == 0x00) && ((PERIPH) != 0x00)) Для ТС: 1. Внимательнее надо копипастить и изучать доки. Ошибка тут из-за того, что GPIO висит на шине AHB, а не AHB2. Константа RCC_AHBPeriph_GPIOB - говорит сама за себя. 2.Отсюда(STM32 Embeddid Software) можно скачать STM32T1xx stomdard peripherals library - StdPeriphLib и CMSIS
0
|
0 / 0 / 0
Регистрация: 29.01.2014
Сообщений: 22
|
|
03.02.2014, 20:04 | 12 |
Да есть за мной косяк торопыга я, пойду изучать Reference manual в части GPIO.. Беру небольшую паузу :) Спасибо vytdy!
P.S Зажег таки светик! (на AVR все через регистры писал долго но надежно, а тут решил библиотеки заюзать большое кол-во параметров + невнимательность и лом мозга на пару дней обеспечен)
0
|
03.02.2014, 20:04 | |
03.02.2014, 20:04 | |
Помогаю со студенческими работами здесь
12
подключение stm32l-discovery к keil STM32L-DISCOVERY + USB (HID) Начало работы с STM32L-Discovery Внешний резонатор на STM32L-Discovery. STM32L-Discovery+Nokia1616LCD+USART STM32L-DISCOVERY не смог завести Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как в curl узнать код статуса HTTP запроса. Коды состояния HTTP
bt_guru 23.01.2025
Коды состояния HTTP играют значимую роль в обеспечении эффективного взаимодействия между клиентами и серверами. При работе с веб-сервисами важно не только отправлять запросы, но и правильно. . .
|
Как сортировать вывод команды ls в Linux
bt_guru 23.01.2025
В операционной системе Linux команда ls является одним из наиболее часто используемых инструментов для просмотра содержимого директорий. При работе с файловой системой пользователи регулярно. . .
|
Как сделать POST запрос с помощью curl
bt_guru 23.01.2025
curl - это мощный инструмент командной строки позволяет отправлять и получать данные через различные протоколы, включая HTTP, HTTPS, FTP и множество других. Особенно полезным curl становится при. . .
|
Прокрутка в tmux с помощью мыши и клавиатуры
bt_guru 23.01.2025
Tmux представляет собой мощный терминальный мультиплексор, который позволяет пользователям создавать и управлять несколькими терминальными сессиями внутри одного окна. Одной из важнейших функций tmux. . .
|
Как проверить, содержит ли массив значение в JavaScript. Поиск в массиве
bytestream 23.01.2025
Эффективный поиск значений в массивах становится критически важным навыком для разработчиков, использующих JavaScript. Процесс поиска элементов в массиве может показаться простым на первый взгляд,. . .
|
Как удалить тег Git в удалённом репозитории (remote)
bytestream 23.01.2025
Одним из важнейших механизмов организации версий в Git являются теги, которые позволяют помечать определенные точки в истории проекта как значимые. Теги часто используются для маркировки релизов,. . .
|
Чем отличаются URL, URI и URN
bytestream 23.01.2025
Системы идентификации представляют собой фундаментальный механизм, позволяющий однозначно определять местоположение и характеристики различных информационных объектов в глобальной сети. Эти системы. . .
|
Как центрировать div внутри другого div с помощью CSS. Управление расположением элементов в CSS
bytestream 23.01.2025
Позиционирование элементов играет ключевую роль в создании качественных и профессиональных интерфейсов. Одной из наиболее часто встречающихся задач является центрирование элементов на веб-странице,. . .
|
Что означают различные символы в синтаксисе PHP
bytestream 23.01.2025
PHP (Hypertext Preprocessor) представляет собой один из наиболее широко используемых языков программирования для веб-разработки, который обладает богатой и интересной историей развития. Изначально. . .
|
Способы клонирования объектов в JavaScript
bytestream 23.01.2025
В современной разработке на JavaScript работа с объектами является фундаментальной частью создания любого приложения. При манипуляции объектами часто возникает необходимость создавать их копии для. . .
|
Как проверить состояние чекбокса в jQuery. Как работать с чекбоксами
bytestream 23.01.2025
При разработке интерактивных веб-форм часто возникает необходимость программно определять состояние чекбоксов с помощью jQuery. Чекбоксы являются важными элементами пользовательского интерфейса,. . .
|
В чем отличие между INNER JOIN и OUTER JOIN. Объединение таблиц в SQL
bytestream 22.01.2025
В современных базах данных информация часто распределена между множеством взаимосвязанных таблиц, что делает операции объединения JOIN неотъемлемой частью работы с SQL. Эти операции позволяют. . .
|