首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在平台上利用本地库构建项目?

如何在平台上利用本地库构建项目?
EN

Stack Overflow用户
提问于 2020-06-14 20:57:27
回答 1查看 1K关注 0票数 0

问题:无法理解为什么项目不使用本地库进行构建。

在构建该项目时,在我的终端上会出现以下错误:

代码语言:javascript
复制
Linking .pio/build/genericSTM32F103C8/firmware.elf
.pio/build/genericSTM32F103C8/src/main.o: In function `main':
main.c:(.text.startup.main+0x2): undefined reference to `clock_setup'
collect2: error: ld returned 1 exit status
*** [.pio/build/genericSTM32F103C8/firmware.elf] Error 1

我的项目树如下所示:

根据platformio lib readme,我在src/main.c中添加了以下内容

代码语言:javascript
复制
#include <clock.h>

我对平台io的配置是:

代码语言:javascript
复制
[env:genericSTM32F103C8]
platform = ststm32
board = genericSTM32F103C8
framework = libopencm3
debug_tool = custom
debug_server =
  $PLATFORMIO_CORE_DIR/packages/tool-openocd/bin/openocd
  -f 
  /usr/local/share/openocd/scripts/interface/stlink-v2.cfg
  -f
  $PLATFORMIO_CORE_DIR/packages/tool-openocd/scripts/target/stm32f1x.cfg
  lib_ldf_mode = chain+

H包含:

代码语言:javascript
复制
#include <libopencm3/stm32/rcc.h>

BEGIN_DECLS

static void clock_setup(void);

END_DECLS

clock.c包含:

代码语言:javascript
复制
#include <libopencm3/stm32/rcc.h>
#include "clock.h"

static void clock_setup(void)
{
    /* Extenal 16 MHz clock set to 72MHz using PLL */
    rcc_clock_setup_in_hse_16mhz_out_72mhz();

    /* Enable clock for DI DO ADC UART */
    rcc_periph_clock_enable(RCC_GPIOA);
    rcc_periph_clock_enable(RCC_GPIOB);
    rcc_periph_clock_enable(RCC_GPIOC);

    /* Enable AFIO clock. */
    rcc_periph_clock_enable(RCC_AFIO);

    /* Enable Timer clock. */
    rcc_periph_clock_enable(RCC_TIM3);
    rcc_periph_clock_enable(RCC_TIM4);

    /* Enable UART clock. */
    rcc_periph_clock_enable(RCC_USART1);
    rcc_periph_clock_enable(RCC_USART2);

    /* Enable I2C clock. */
    rcc_periph_clock_enable(RCC_I2C2);

    /* Enable SPI2 clock. */
    rcc_periph_clock_enable(RCC_SPI2);

}
EN

回答 1

Stack Overflow用户

发布于 2020-06-16 20:51:36

我当前的lib文件夹如下所示,platformio的LDF现在可以找到我的本地库了。

├──clock│├──clock.c│└──clock.h├──di│├──di.c│└──di.h├──do│├──do.c│└──do.h├──├──│├──adc_i2c.c│└──├──spi├──spi.c├──spi├──spi.美国联合航空公司( uart debug_uart.h debug_uart.h├──display_uart.c├──display_uart.h├──modbus_uart.c└──modbus_uart.h

)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62378122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档