forked from Elron_dev/elbear_arduino_bsp
- добавлена библиотека softwareSerial. Скорость работы до 57600 включительно и на отправку, и на прием. - в bootloader добавлена проверка контрольной суммы - добавлен файл wiringLL.h, в котором собраны некоторые макросы. Этими макросами заменены функции в местах, чувствительных к длительности выполнения кода. - общие функции обработки прерываний перенесены в ram память для увеличения скорости выполнения. Так же в память ram перенесены функции обработки прерываний модулей WInterrupt (прерывания от gpio), модуля tone, модуля softwareSerial - добавлен файл-заглушка util/delay.h, необходимый для некоторых библиотек
43 lines
828 B
C++
43 lines
828 B
C++
#include "board.h"
|
|
#include "mik32_hal_pcc.h"
|
|
#include "mik32_hal_irq.h"
|
|
#include "Arduino.h"
|
|
|
|
// --------------------- init --------------------- //
|
|
// called before setup()
|
|
void pre_init(void)
|
|
{
|
|
// set irq vector to ram region
|
|
write_csr(mtvec, 0x02000000);
|
|
|
|
HAL_Init();
|
|
|
|
// gpio clock
|
|
__HAL_PCC_GPIO_0_CLK_ENABLE();
|
|
__HAL_PCC_GPIO_1_CLK_ENABLE();
|
|
__HAL_PCC_GPIO_2_CLK_ENABLE();
|
|
__HAL_PCC_GPIO_IRQ_CLK_ENABLE();
|
|
|
|
// for delays
|
|
SysTick_Init();
|
|
}
|
|
|
|
// called after setup()
|
|
void post_init(void)
|
|
{
|
|
// enable global interrupts by default
|
|
interrupts();
|
|
}
|
|
|
|
// --------------------- other --------------------- //
|
|
// print text if Serial is enabled
|
|
extern "C" void ErrorMsgHandler(const char * msg)
|
|
{
|
|
#ifdef HardwareSerial_h
|
|
if(Serial)
|
|
Serial.println(msg);
|
|
#endif
|
|
}
|
|
|
|
|