воскресенье, 10 апреля 2011 г.

Утро вечера мудрее или первый проект на ARM.

Проснуышись утром, почувствовал, что вчерашние впечатления от Atollic не совсем верны. За ночь мозг отдохнул и многие вещи встали на свои места.
Первое, о чем пришло осознание - в шаблонах проекта много лишней информации. Куча различных опрделителей позволяют использовать единый шаблон для разных устройств. Но в целом он вызывает отрицательное впечатление от сложной структуры. Убрал все лишнее и проблем не возникло.
Atollic TrueSTUDIO

Второе озарение связано с отладчиком. несколько неправильно к нему подходил, поэтому реальной работы не увидел. На самом деле все функционирует и процесс даже понравился.
Единственно что напрягает - постоянно выскакивающее окно, требующее обновить программу.
Окно отладчика
Следующим этапом стало создание первого проекта для ARM - микроконтроллера. Изучив исходные коды приложенных демонстрационных программ, написал свою, мигющую встроенными светодиодами. Использовал специальную библиотеку для STM32Discovery, поэтому пока напрямую к процессору не обращался. Задержка тоже реализована простым циклом. Дальше буду разбираться как все это сделать в командах процессора. Тем не менее плата STM32Discovery заработала и начала перемигиваться зеленым и синим светодидами.

Код первой программы для STM32Discovery:


#include <stddef.h>
#include "stm32f10x.h"
#include "STM32vldiscovery.h"
 static __IO uint32_t TimingDelay;
void Delay(uint32_t nTime);
int main(void)
{
STM32vldiscovery_LEDInit(LED3);
STM32vldiscovery_LEDInit(LED4);
STM32vldiscovery_PBInit(BUTTON_USER, BUTTON_MODE_GPIO);
STM32vldiscovery_LEDOff(LED3);
STM32vldiscovery_LEDOff(LED4);
while (1)
{
STM32vldiscovery_LEDOn(LED3);
STM32vldiscovery_LEDOff(LED4);
Delay(500000);
STM32vldiscovery_LEDOff(LED3);
STM32vldiscovery_LEDOn(LED4);
Delay(500000);
}
}
void Delay(uint32_t nTime)
{
TimingDelay = nTime;
while(TimingDelay != 0)
{
TimingDelay--;
}
}

Комментариев нет:

Отправить комментарий