platform-raspberrypi
platform-raspberrypi copied to clipboard
undefined reference to `alarm_pool_get_default'
I can't use the timer irq with the rp2040 and the arduino framework. Some help or recommendations?
#define PICO_TIME_DEFAULT_ALARM_POOL_DISABLED 0
#include <string.h>
#include "unity.h"
#include <stdio.h>
#include "pico/stdlib.h"
extern "C" {
#include <hardware/timer.h>
#include <hardware/watchdog.h>
#include "pico/multicore.h"
};
#include "pio_tx_controller.h"
#include "gpio.h"
#include "pico/time.h"
#include "test_utils.h"
// Implements
#include "tests.h"
void setUp(){};
void tearDown(){};
bool led_state{false};
bool led_callback(repeating_timer_t* rt) {
Pio_tx_controller::get()->write("Hey Jude!\r\n");
gpio_put(PICO_DEFAULT_LED_PIN, led_state);
led_state = !led_state;
return true;
}
void test_timer_irq() {
_gpio_init(PICO_DEFAULT_LED_PIN);
gpio_set_dir(PICO_DEFAULT_LED_PIN, GPIO_OUT);
struct repeating_timer timer;
bool ok = add_repeating_timer_ms(1000, led_callback, NULL, &timer);
while (true)
tight_loop_contents();
};
That's because the Arduino framework use MBED library precompiled with #define PICO_TIME_DEFAULT_ALARM_POOL_DISABLED=1 So the function doesn't exist in the library and you can't link it.