Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 25.12.2010, 06:25  
rukez
Частый гость
 
Регистрация: 24.12.2010
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
rukez на пути к лучшему
Вопрос uVision и библиотеки stm32 peripheral library - проблемы с дебагом и АЦП )

Начинаю ради интереса осваивать stm32 на примере stm32vl discovery (stm32f100rb), столкнулся с парой проблем - подскажите куда копать
1) Если в проект добавить st'шные библиотеки на периферию старше 3ей версии, то радостно отваливается симулятор в дебаге (как чистый симулятор, так и просмотр периферии при дебаге на аппаратном устройстве - доступна только вкладка core peripherals) ругаясь на 65ую ошибку запрета доступа к памяти - погуглив нашелся способ разрешить доступ - не помог даже полный доступ ко всей памяти:
Код:
Include "C:\\11\\dbg.ini" 
MAP  0x0, 0xFFFFFFFF  READ WRITE  // allow R/W access to IO space
*** error 65: access violation at 0x0000000C : no 'read' permission
Все пути к inc прописаны правильно, все компилируется и собирается без проблем
Интересно что да-же родные st'шные примеры, включая примерный проект под uVision страдают аналогичной болячкой.
Дебаг удалось запустить на кривой комбинации файлов разных версий, но начались проблемы с отладкой (через раз не видит содержимое некоторых регистров и т.п.)
Вопрос - как победить библиотеку? Может подкините архив с uVision'овским проектом + stm32f10x_stdperiph_lib (желательно 3.3 или 3.4) + cmsis в рабочем виде? замучался ужасно
2) И второй вопрос
Пытаюсь разобраться с ADC - пробовал писать по смотря в даташит и по аналогии с мегой - не получилось Начал разбираться на примерах ... либо следствие проблемы из пункта 1) либо я что-то делаю не так ибо то работает правильно то не работает
Например (код найден в сети, немного подправлен)
Код:
#include "stm32F10x.h"
#define CCR_ENABLE_Set          ((uint32_t)0x00000001)

void setsystemclock(void);

__IO uint16_t ADCConvertedValue;
int temp=0;

int main(void)
{
int temp=0;
    setsystemclock(); //set system clock to 24Mhz3
    //rcc CONFIGURATION
   RCC-›AHBENR=RCC_AHBENR_DMA1EN; //dma clock enable
   RCC-›APB2ENR=RCC_APB2ENR_IOPCEN | RCC_APB2ENR_ADC1EN; //portc and ADC clock enable.
    //GPIO CONFIGURATION
   GPIOC-›CRL=0x0;// ADC1_IN14
   //ADC configuration
//   ADC1-›CR1=ADC_CR1_SCAN;
   ADC1-›CR2=ADC_CR2_ALIGN | ADC_CR2_EXTSEL ; //data align right , software start
   ADC1-›SMPR1=0x00005000;// 55 cycles conversion time
   ADC1-›SQR3=0xe;//14Ch
   ADC1-›SQR1|=ADC_SQR1_SQ14_0;
//   ADC1-›CR2 |=ADC_CR1_SCAN  ;  /* Enable ADC1 DMA */
   ADC1-›CR2 |=ADC_CR2_ADON; /* Enable ADC1 */
   ADC1-›CR2 |=ADC_CR2_RSTCAL ;//reset calibration
   while ((ADC1-›CR2 & ADC_CR2_RSTCAL) != 0x00); //wait for   end of ADC1 reset calibration register
   ADC1-›CR2 |=ADC_CR2_CAL;/* Start ADC1 calibaration */
   while((ADC1-›CR2 & ADC_CR2_CAL) != 0x00);/* Check the end of ADC1 calibration */
   ADC1-›CR2 |=ADC_CR2_SWSTART |ADC_CR2_EXTTRIG; /* Start ADC1 Software Conversion */
    while(1)
    {
	while ((ADC1-›SR&ADC_SR_EOC) == 0x00)
    {
    }  
    temp=ADC1-›DR;
    ADC1-›CR2 |=ADC_CR2_SWSTART |ADC_CR2_EXTTRIG; /* Start ADC1 Software Conversion */
    }
}

void setsystemclock(void)
{
 /* Enable PLL */
    RCC-›CR |= RCC_CR_PLLON;
    /* Wait till PLL is ready */
    while((RCC-›CR & RCC_CR_PLLRDY) == 0)
    {
    }
    /* Select PLL as system clock source */
    RCC-›CFGR = (RCC-›CFGR & ~RCC_CFGR_SW) | RCC_CFGR_SW_PLL;
	  	// Select PREDIV1 as PLL source and sett PLL mul to 3 (set bit 0)
    // for 8*3 = 24 MHz
    RCC-›CFGR |= RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL_0;
    /* Wait till PLL is used as system clock source */
    while ((RCC-›CFGR & RCC_CFGR_SWS) != 0x08)
    {
    }       ;
}
С PLL проблемку нашел, в результате ядро работает на 8МГц а АЦП на 4МГц но вроде как не важно т.к. насколько я понял главное не превышать разрешенные 14Мгц
Проблема в чем - при отладке на железке ЕОС то выставляется в 1 то не выставляется - закономерность уловить не смог И дебаг упорно не видит содержимое ADC1-›DR пока не поставишь watch на любую переменную, которая находится где-нить рядом в памяти (либо достаточно просто в просмотре памяти открыть адрес DR или что-то близкое)
Подскажите пожалуйста - это проблема uVision'а или моих кривых рук?
Реклама:
rukez вне форума  
Непрочитано 02.01.2011, 08:30  
akimych
Прописка
 
Регистрация: 02.01.2011
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 32 раз(а) в 28 сообщении(ях)
akimych на пути к лучшему
По умолчанию Re: uVision и библиотеки stm32 peripheral library - проблемы с дебагом и АЦП )

Цитата:
Если в проект добавить st'шные библиотеки на периферию старше 3ей версии
Хм, а если не добавлять не отваливается?
У меня проект был уже с библиотеками, так что я не пробовал. Я вообще решил, что у кейла просто еще не реализован симулятор для ф100. На сайте кейла в "Simulated Features" пусто. Хотя в более старой версии кейла вроде бы симулятор был. Но возможно, для 100го там просто был копипаст.
Я пока эту проблему решил выбрав stm32f101 в настройках, они отличаются немного, но это не так страшно. Однако, даже с f101 все равно глюки, если выбирать 16кб вариант.
akimych вне форума  
Непрочитано 02.01.2011, 16:00  
-jonns-
Временная регистрация
 
Регистрация: 15.02.2008
Адрес: Болгария
Сообщений: 59
Сказал спасибо: 37
Сказали Спасибо 28 раз(а) в 11 сообщении(ях)
-jonns- на пути к лучшему
По умолчанию Re: uVision и библиотеки stm32 peripheral library - проблемы с дебагом и АЦП )

Сообщение от rukez Посмотреть сообщение
радостно отваливается симулятор в дебаге
Та же проблема и у меня, пока разрешения не нашел. Если надо прогнать код в симмульяторе, меняю "Target" на STM32F103RB.

В аттаче, два "Blinky" проекта под SWLIB и FWLib для оценочной платой STM32VLDISCOVERY. Правда библиотеки те кот. идут с кейлом 4.13а, вроди в2.1. Надеюсь поможет.
Вложения:
Тип файла: rar Discovery-CMSIS-Blinky.rar (201.6 Кб, 358 просмотров)
Тип файла: rar Discovery-FWLib-Blinky.rar (375.8 Кб, 306 просмотров)
-jonns- вне форума  
Непрочитано 02.01.2011, 23:15  
akimych
Прописка
 
Регистрация: 02.01.2011
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 32 раз(а) в 28 сообщении(ях)
akimych на пути к лучшему
По умолчанию Re: uVision и библиотеки stm32 peripheral library - проблемы с дебагом и АЦП )

Все ниже сказанное относится к версии кейла 4.13а
На самом деле все даже интересней. Убираем галочку "run to main" и что видим? Код программы просто отсутсвует в памяти - там одни нули.
0x0000000C - это обработчик HardFault_Handler.
Если обратить внимание на настройки дебаггера, то можно заметить разницу между, к примеру, STM32F101RB и STM32F100RB. Как я уже говорил, симулятор кейла не поддерживает пока 100ую линейку, "Dialog.DLL" там не DARMSTM.DLL, а DCM.DLL. Я так понимаю, что это просто симулятор ядра. Так же еще есть интересный момент, что в DARMSTM.DLL кроме F100 так же напрочь отсутсвуют модели с 16КБ флеша, хотя кейл думает, что они там есть.
Почему в памяти пусто? Смотрим настройки линкера - R/O Base = 0x08000000, а ядро стартует с 0. Если запустить F101, симулятор стартует с 0x08000000.
Что с этим делать? Ну тут есть несколько вариантов.
Если нужен полноценный симулятор, то придется выбрать в настройках что-то другое вместо F100. Пока кейл не доделает.
Можно стартануть и F100, если в настройках линкера указать R/O Base = 0.
Ну еще можно написать свою DLL для симулятора

П.С.
Вообще ситуация с поддержкой F100 как-то раздражает. Сейчас делаю на нем проект, а тут такая подстава. Особенно это странно выглядит в свете раздачи халявных stm32vldiscovery.
akimych вне форума  
Непрочитано 02.02.2011, 14:26  
DanilinSA
Почётный гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Адрес: г. Дзержинск Нижегородская обл.
Сообщений: 1,672
Сказал спасибо: 130
Сказали Спасибо 1,074 раз(а) в 517 сообщении(ях)
DanilinSA на пути к лучшему
По умолчанию Re: uVision и библиотеки stm32 peripheral library - проблемы с дебагом и АЦП )

По поводу отладки stm32 на примере stm32vl discovery (stm32f100rb). Нету там никаких проблемм с с отладчиком для чипов stm32f100хх
По очень простой причине: нет там отладки для данных чипов.

Меняем тип чипа и видим:
1) Для чипов STM32F101T6 STM32F101T8 STM32F101C6 STM32F101C8 STM32F101CB STM32F101R6 STM32F101R8 STM32F101RB STM32F101RC STM32F101RD STM32F101RE STM32F101V8 STM32F101VB STM32F101VC STM32F101VD STM32F101VE STM32F101ZC STM32F101ZD STM32F101ZE STM32F103T6 STM32F103T8 STM32F103C6 STM32F103C8 STM32F103CB STM32F103R6 STM32F103R8 STM32F103RB STM32F103RC STM32F103RD STM32F103RE STM32F103V8 STM32F103VB STM32F103VC STM32F103VD STM32F103VE STM32F103ZC STM32F103ZD STM32F103ZE ST_bare CortexM3 STM32F217IG вызывается при отладке DARMSTM.dll (типы поддерживаемых чипов есть внутри библиотеки) . Для этих чипов полноценная отладка есть.
2) Для STM32F100хх и аналогичных вызывается библиотека DCM.dll . Это "ядерная" библиотека. Голая поддержка ядра СМ3. Навроде как пустая заглушка для нового проца. О перефериии эта библиотека ничего не знает, про распределение адресного пространства то-же эта библиотека не в курсе ...

Походу проц добавляли в последний момент. В оболочку прописали чип, а в отладочную библиотеку не успели. И влепили заглушку.

А потому варианты отладки:
1) Забиваем в проект чип из вышеперечисленного, который максимально похож на твой. И гоняем в симуляторе до просветления. А потом льем в чип.
2) Ждем новую версию или заплатку для старой.
3) Если фанат - напиши сам библиотеку. Формат у неё открытый.

У меня дома EWARM + stm32vl discovery для экспериментов в железе. А на работе Keil + его симулятор для абстрактных медитаций
DanilinSA вне форума  
Непрочитано 02.02.2011, 14:32  
ursa
Частый гость
 
Регистрация: 21.02.2005
Сообщений: 46
Сказал спасибо: 6
Сказали Спасибо 38 раз(а) в 17 сообщении(ях)
ursa на пути к лучшему
По умолчанию Re: uVision и библиотеки stm32 peripheral library - проблемы с дебагом и АЦП )

Сообщение от DanilinSA Посмотреть сообщение
У меня дома EWARM + stm32vl discovery для экспериментов в железе. А на работе Keil + его симулятор для абстрактных медитаций
Аналогично https://kazus.ru/forums/showpost.php...&postcount=156
__________________
Настоящий эмбеддер в программе на С пишет комментарии на Ассемблере.
ursa вне форума  
Непрочитано 02.02.2011, 22:34  
akimych
Прописка
 
Регистрация: 02.01.2011
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 32 раз(а) в 28 сообщении(ях)
akimych на пути к лучшему
По умолчанию Re: uVision и библиотеки stm32 peripheral library - проблемы с дебагом и АЦП )

Цитата:
Походу проц добавляли в последний момент. В оболочку прописали чип, а в отладочную библиотеку не успели. И влепили заглушку.
Да походу и не собираются, для F2xx почему-то успели добавить.
akimych вне форума  
Непрочитано 13.02.2011, 03:10  
rukez
Частый гость
 
Регистрация: 24.12.2010
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
rukez на пути к лучшему
По умолчанию Re: uVision и библиотеки stm32 peripheral library - проблемы с дебагом и АЦП )

вышло обновление для кейла - 4.14 - в релиз ноутах многобуков про поддержку stm f10x но на практике на f100 похоже положили болт
если брать новые штатные примеры из 4.14ого кейла именно для stm32-vl discovery (блинки например) то дебаг не пашет
замена целевого процессора на 103rb по прежнему помогает и дебаг оживает
вопрос - а велика ли вообще разница между 100 и 103?
rukez вне форума  
Непрочитано 13.02.2011, 06:50  
akimych
Прописка
 
Регистрация: 02.01.2011
Сообщений: 159
Сказал спасибо: 8
Сказали Спасибо 32 раз(а) в 28 сообщении(ях)
akimych на пути к лучшему
По умолчанию Re: uVision и библиотеки stm32 peripheral library - проблемы с дебагом и АЦП )

Цитата:
вопрос - а велика ли вообще разница между 100 и 103?
Отличаются макс. тактовой частотой и наличием кое-какой периферии.
А вообще вопрос странный, лучше взять даташит и решить для себя, велика эта разница или нет.
akimych вне форума  
Непрочитано 13.02.2011, 09:51  
rukez
Частый гость
 
Регистрация: 24.12.2010
Сообщений: 15
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
rukez на пути к лучшему
По умолчанию Re: uVision и библиотеки stm32 peripheral library - проблемы с дебагом и АЦП )

имелось ввиду можно ли смело пользоваться подстановкой 103его вместо 100ого в кейле при отладке или будет много проблем? отличие основное как я понял по частоте (не критично ни разу) и по памяти (надеюсь на простых вещах проблем не будет)
по портам вроде особых отличий не нашел т.е. в теории особых глюков быть не должно
rukez вне форума  
 

Закладки
Опции темы

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

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

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


Часовой пояс GMT +4, время: 13:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot