Как в Keil создавать многофайловый проект?

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
trek1203
Первый раз сказал Мяу!
Сообщения: 26
Зарегистрирован: Вс июл 07, 2024 18:40:12

Как в Keil создавать многофайловый проект?

Сообщение trek1203 »

Вроде по коду я ошибок не вижу, но тем не менее пишет что есть ошибки.

Добавлено 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
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3472
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

Re: Как в Keil создавать многофайловый проект?

Сообщение smacorp »

Компилятор Вам показал не только строки, в которых ошибки, но описал эти ошибки и "носом ткнул", нарисовав стрелки.

Вот первая:

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
Аватара пользователя
Enigm
Говорящий с текстолитом
Сообщения: 1663
Зарегистрирован: Вт апр 03, 2012 20:36:41
Откуда: Сочи

Re: Как в Keil создавать многофайловый проект?

Сообщение Enigm »

Можете эту ошибку скормить ИИ , Он по ошибкам кейла отлично рассказывает.
kolobok0
Грызет канифоль
Сообщения: 296
Зарегистрирован: Ср дек 30, 2009 09:55:39

Re: Как в Keil создавать многофайловый проект?

Сообщение kolobok0 »

[uquote="trek1203",url="/forum/viewtopic.php?p=4771849#p4771849"]....[/uquote]

Вы заголовок написали одно, в теле ошибку компилятора воткнули.

Кеил, да и все другие подобные среды, замечательно жрёт многофайловость, многомодульность, много проектность, многотаргевость.

Несколько файлов - тупо указываете в дереве проекта, он их все добросовестно будет пытаться компилять.
Если нужно сделать инклюд внутри программы - то Ваш инклюдный файл должен быть по пути поиска (строка компилятора для инклюдников). Можно указать как свои, так и из других модулей.


удачи Вам
(круглый)
Ответить

Вернуться в «ARM»