Вроде по коду я ошибок не вижу, но тем не менее пишет что есть ошибки.
Добавлено after 10 minutes 7 seconds:
\\\\ main.c
#include "main.h"
int main(void){
INIT();
while(1);
return 0;
}
\\\ main.h
#ifndef MAIN_H
#define MAIN_H
#include <stdint.h>
#include "FM33A0XXEV.h"
#include "init.h"
#endif
\\\init.c
#include "init.h"
#include <stdint.h>
#pragma GCC diagnostic ignored "-Wgnu-binary-literal"
void INIT(void){
rcc();
}
void rcc(void){
CMU->RCHFCR |= (0b0001U << 1);
}
\\\init.h
#ifndef MAIN_H
#define MAIN_H
#include "main.h"
void INIT(void);
void rcc(void);
#endif
\\\ Ошибка
Build started: Project: test
*** Using Compiler 'V6.19', folder: 'C:\Programs\keil\ARM\ARMCLANG\Bin'
Build target 'Target 1'
init.c(12): error: use of undeclared identifier 'CMU'
CMU->RCHFCR |= (0b0001U << 1);
^
1 error generated.
compiling init.c...
main.c(4): error: call to undeclared function 'INIT'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
INIT();
^
1 error generated.
compiling main.c...
compiling system_FM33A0XXEV.c...
".\test.axf" - 2 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:01
Как в Keil создавать многофайловый проект?
Re: Как в Keil создавать многофайловый проект?
Компилятор Вам показал не только строки, в которых ошибки, но описал эти ошибки и "носом ткнул", нарисовав стрелки.
Вот первая:
init.c(12): error: use of undeclared identifier 'CMU'
CMU->RCHFCR |= (0b0001U << 1);
^
Вторая по аналогии.
Вы вряд ли найдёте помощь на форуме - вряд ли найдётся желающий удалённо и по шагам объяснять, как работают компиляторы, как они ищут подключаемые файлы и т.д., особенно, учитывая, что Ваш уровень, похоже, "очень начинающий".
Выход - запастись переводчиком Eng -> Rus и какой-нибудь инструкцией (и не одной). Их полно по данной тематике, начиная со встроенной помощи в сам Keil. Проявив терпение и настойчивость, разберётесь - все через это проходили, и никому нахрапом победить настройки компилятора ещё не удавалось.
Вот первая:
init.c(12): error: use of undeclared identifier 'CMU'
CMU->RCHFCR |= (0b0001U << 1);
^
Вторая по аналогии.
Вы вряд ли найдёте помощь на форуме - вряд ли найдётся желающий удалённо и по шагам объяснять, как работают компиляторы, как они ищут подключаемые файлы и т.д., особенно, учитывая, что Ваш уровень, похоже, "очень начинающий".
Выход - запастись переводчиком Eng -> Rus и какой-нибудь инструкцией (и не одной). Их полно по данной тематике, начиная со встроенной помощи в сам Keil. Проявив терпение и настойчивость, разберётесь - все через это проходили, и никому нахрапом победить настройки компилятора ещё не удавалось.
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
- Enigm
- Говорящий с текстолитом
- Сообщения: 1663
- Зарегистрирован: Вт апр 03, 2012 20:36:41
- Откуда: Сочи
Re: Как в Keil создавать многофайловый проект?
Можете эту ошибку скормить ИИ , Он по ошибкам кейла отлично рассказывает.
Re: Как в Keil создавать многофайловый проект?
[uquote="trek1203",url="/forum/viewtopic.php?p=4771849#p4771849"]....[/uquote]
Вы заголовок написали одно, в теле ошибку компилятора воткнули.
Кеил, да и все другие подобные среды, замечательно жрёт многофайловость, многомодульность, много проектность, многотаргевость.
Несколько файлов - тупо указываете в дереве проекта, он их все добросовестно будет пытаться компилять.
Если нужно сделать инклюд внутри программы - то Ваш инклюдный файл должен быть по пути поиска (строка компилятора для инклюдников). Можно указать как свои, так и из других модулей.
удачи Вам
(круглый)
Вы заголовок написали одно, в теле ошибку компилятора воткнули.
Кеил, да и все другие подобные среды, замечательно жрёт многофайловость, многомодульность, много проектность, многотаргевость.
Несколько файлов - тупо указываете в дереве проекта, он их все добросовестно будет пытаться компилять.
Если нужно сделать инклюд внутри программы - то Ваш инклюдный файл должен быть по пути поиска (строка компилятора для инклюдников). Можно указать как свои, так и из других модулей.
удачи Вам
(круглый)