Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
6 / 6 / 0
Регистрация: 07.08.2014
Сообщений: 175

Ошибки IAR компилятора для stm8

03.04.2016, 22:38. Показов 5020. Ответов 11

Студворк — интернет-сервис помощи студентам
Застрял в самом начале создания программы.
МК stm8s003f3. IAR 1.40.1

Листинг программы:
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#define STM8S003
//#define _IAR_
 
#include "stm8s.h"
//#include "stm8s_clk.h"
 
/*Prototypes*/
void ADC_conversion(void);
void prepare (void);//MCU initialization
 
void ADC_conversion(void) {
ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, 
               ADC1_CHANNEL_4,
               ADC1_PRESSEL_FCPU_D2, 
               ADC1_EXTTRIG_TIM, 
               DISABLE,
               ADC1_ALIGN_RIGHT, 
               ADC1_SCHMITTTRIG_CHANNEL4, 
               DISABLE);
}
 
 
void prepare (void){
//Set PD3 as AF analog input.
GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT);
}
 
int main( void )  { 
while(1) {
uint32_t Chip_Freq;
CLK_Source_TypeDef Chip_Source;
 
Chip_Freq = CLK_GetClockFreq ();
Chip_Source = CLK_GetSYSCLKSource();
CLK_DeInit(); 
 
__asm("nop");  
  
}}


Не видит таких функций в файле "stm8s_clk.h".

Code
1
2
3
4
5
6
7
8
9
10
Building configuration: test_stm8s003f3 - Debug 
Updating build tree... 
Linking 
Error[Li005]: no definition for "CLK_GetClockFreq" [referenced from D:\STM\IAR\STM8\test_8s003f3\Debug\Obj\main.o] 
Error[Li005]: no definition for "CLK_GetSYSCLKSource" [referenced from D:\STM\IAR\STM8\test_8s003f3\Debug\Obj\main.o] 
Error[Li005]: no definition for "CLK_DeInit" [referenced from D:\STM\IAR\STM8\test_8s003f3\Debug\Obj\main.o] 
Error while running Linker 
 
Total number of errors: 3 
Total number of warnings: 0
Пробовал отключать оптимизацию.

Добавлено через 9 минут
И так чего то ни одна функция не работает =(
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.04.2016, 22:38
Ответы с готовыми решениями:

STM8,IAR,STM8S_StdPeriph_Lib
Месяц назад начал изучать микроконтроллеры,сначала AVR (Arduino),сейчас STM8 (IAR). Написал несколько простеньких программ без проблем...

Прерывания STM8 в IAR
Нужна помощь. Не могу понять, как использовать прерывания в стм8 в ИАР(оно и видно из названия). Код вида #pragma vector = <номер...

IAR, STM8. Оптимизатор, чересчур оптимизирует код
Есть массив во флеш: const unsigned char Pexel_1 = {255,254,253,252,251,250,255,255,254,253,252,251,250,255,255}; Есть массив в RAM: ...

11
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
03.04.2016, 22:45
Лень объяснять, Вот шаблон набросал.
Проект в папке автономен, но
Открывайте через Template_STM8.eww
Нельзя менять название папок
P.S. Проект настроен по минимуму, только порты и генератор, добавите остальные модули сами
Вложения
Тип файла: 7z TemplateStm8.7z (3.95 Мб, 22 просмотров)
1
6 / 6 / 0
Регистрация: 07.08.2014
Сообщений: 175
03.04.2016, 23:05  [ТС]
Витальич, Однако пишет что вокрспэйс был создан в более новой версии и не может быть открыт.
Пойду спать, завтра поковыряю, может получится на STVD + Cosmic компайлер.
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
04.04.2016, 07:30
таки сами создайте https://www.youtube.com/watch?v=KLV86Kbo2o4
извиняюсь за качество
1
6 / 6 / 0
Регистрация: 07.08.2014
Сообщений: 175
04.04.2016, 09:44  [ТС]
Витальич, класс , спасибо. Добавил .с файлы к проэкту, добавил функцию assert_failed и вроде все заработало. Что это за функция?
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
04.04.2016, 11:04
Цитата Сообщение от Dmirtiy Vovk Посмотреть сообщение
Что это за функция?
обработчик "исключений"(правильней ассертов) стандартной библиотеки периферии.
0
6 / 6 / 0
Регистрация: 07.08.2014
Сообщений: 175
04.04.2016, 18:49  [ТС]
Витальич, он проверяет правильность аргументов и если что зависает?! Я имел ввиду почему в этой самой библиотеке не было такого обработчика?
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
04.04.2016, 22:36
Цитата Сообщение от Dmirtiy Vovk Посмотреть сообщение
он проверяет правильность аргументов
ДА! И уходит в бесконечный цикл.
0
6 / 6 / 0
Регистрация: 07.08.2014
Сообщений: 175
05.04.2016, 16:54  [ТС]
Витальич, Дядь, у меня новая проблемка, то ли лыжи не едут, то ли я...

Таймер1 хочу исп. как счетчик задержек. У него есть 16-бит предделитель. Всё вроде по феншую сделал, однако таймер оч. быстро отрабатывает и за секунду наматывает "надцать" тысячь раз. Ощущение что не реагирует на предделитель. Как я уже не извращался... Оптимизация откл.

Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//#define STM8S003
//#define _IAR_
 
#include "stm8s.h"
 
 
//ADC - PD3, EXTI - PB4
 
uint16_t counter=0;
 
/*Prototypes*/
void ADC_conversion(void);
void prepare (void);//MCU initialization
volatile  void delay_ms(uint16_t delay); //ms delay timer
 
 
 
volatile void delay_ms(uint16_t delay)
{
     TIM1->PSCRL = 0x7F;//Prescaller 16 000 000/ 16 000 = 1000 ticks per sec
     TIM1->PSCRH = 0x3E;
     TIM1->ARRL = (uint8_t)(0xFF & delay);
     TIM1->ARRH = (uint8_t)(delay >> 8);
     TIM1->EGR |= (uint8_t)TIM1_PSCRELOADMODE_UPDATE;// Update on event
     TIM1->CR1 |= (uint8_t)TIM1_CR1_OPM; //Timer in One Pulse Mode
     TIM1->CR1 |= TIM1_CR1_CEN;          //Start timer1
     while ((TIM1->CR1&TIM1_CR1_CEN)!=0){};//While goind timer1
}
     
 
int main( void )  { 
uint32_t Chip_Freq;
CLK_Source_TypeDef Chip_Source;
prepare();
Chip_Freq = CLK_GetClockFreq ();
Chip_Source = CLK_GetSYSCLKSource();
__asm("nop");
 
while(1) {
 
delay_ms(1000);  
counter++;
GPIO_WriteReverse(GPIOA, GPIO_PIN_3);
 
__asm("nop");
 
}
}
 
 
 
#ifdef USE_FULL_ASSERT
void assert_failed(uint8_t* file, uint32_t line) {
  while(1){
  __asm("nop");
  }
}
#endif
 
void ADC_conversion(void) {
ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, 
               ADC1_CHANNEL_4,
               ADC1_PRESSEL_FCPU_D2, 
               ADC1_EXTTRIG_TIM, 
               DISABLE,
               ADC1_ALIGN_RIGHT, 
               ADC1_SCHMITTTRIG_CHANNEL4, 
               DISABLE);
}
 
 
void prepare (void){
GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_SLOW);//PA3 as out PP 2MHz , high?
GPIO_Init(GPIOD, GPIO_PIN_3, GPIO_MODE_IN_FL_NO_IT);//Set PD3 as AF analog input_NO_interrupts.
GPIO_Init(GPIOB, GPIO_PIN_4, GPIO_MODE_IN_FL_IT);//Set PB4 as AF analog input_with_interrupts.
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//Power up =)
}
0
 Аватар для Витальич
1280 / 1185 / 175
Регистрация: 02.12.2013
Сообщений: 4,883
05.04.2016, 17:13
А на какой частоте ядро сейчас крутиться?
вот от встроенного на 16мГц
C
1
2
3
  CLK_DeInit();
  CLK_HSICmd(ENABLE);
  CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
1
6 / 6 / 0
Регистрация: 07.08.2014
Сообщений: 175
05.04.2016, 17:13  [ТС]
Витальич,А, всё , понял, сперва записывается старший байт в регистрах TIM1->ARR и TIM1->PSCR.
Получалось что в окошках просмотря регистров были правильные значения, но там внутри есть "настоящие" регистры, не буферы, ну вы пониммаете...
0
05.04.2016, 17:35

Не по теме:

Смотрю Вы по потихоньку с библиотеки слезаете, молодца.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2016, 17:35
Помогаю со студенческими работами здесь

кто сделает экспорт SDCC STM8 -> IAR STM8 ?
а то труды пропадут... https://github.com/eddyem/STM8_samples

Новый IAR для STM8
Мне пришла рассылка - вышла новая версия 2.1 IAR для STM8. Бесплатная лицензия как обычно до 8к кода. Кто-нибудь пользовался? Есть...

Загрузчик под IAR для STM8
Задача: написать свой загрузчик(встроенный не канает), в инете нарыл примеры, но для COSMIC, кто-нибудь встречал примеры под IAR?

объявление enum типа в IAR для STM8
Господа, я привык к такому объявлению типа typedef enum algrthmStepType { risingStep, deadStep }; IAR для STM8 дает предупреждение...

Ошибка в новых (1.4 и выше) IAR-ах для STM8: Error[Lp011]
Доброго всем времени суток. При переходе с IAR для STM8 версии 1.31.1 на версию 1.42.2 и выше, линкер стал выдавать нижеуказанную...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru