This commit is contained in:
2025-05-13 03:26:56 +03:00
parent 87a14db6f4
commit 154af64dde
563 changed files with 797817 additions and 0 deletions
+14
View File
@@ -0,0 +1,14 @@
#ifndef HAL_LIBRARY_H__
#define HAL_LIBRARY_H__
#if defined(STM32F4)
#include "stm32f4xx_hal.h"
#elif defined(STM32F0)
#include "stm32f0xx_hal.h"
#elif defined(STM32F1)
#include "stm32f1xx_hal.h"
#else
#error "Unknown HAL library"
#endif
#endif //HAL_LIBRARY_H__
+48
View File
@@ -0,0 +1,48 @@
/*
* nrf_stm32.h
*
* Created on: 13 ÿíâ. 2016 ã.
* Author: Sergey
*/
#ifndef NRF_STM32_H_
#define NRF_STM32_H_
#include "board.h"
#include "hal_library.h"
#include "nrf24l01p/nrf.h"
extern SPI_HandleTypeDef RADIO_SPI;
using namespace radio_cpp;
template<uint32_t CSN_port, uint16_t CSN_pin, uint32_t CE_port, uint16_t CE_pin, SPI_HandleTypeDef* SPI>
class Nrf_stm : public nrf24::Module {
public:
void csn_low() override {
HAL_GPIO_WritePin((GPIO_TypeDef*)CSN_port, CSN_pin, GPIO_PIN_RESET);
}
void csn_high() override {
HAL_GPIO_WritePin((GPIO_TypeDef*)CSN_port, CSN_pin, GPIO_PIN_SET);
}
void ce_low() override{
HAL_GPIO_WritePin((GPIO_TypeDef*)CE_port, CE_pin, GPIO_PIN_RESET);
}
void ce_high() override{
HAL_GPIO_WritePin((GPIO_TypeDef*)CE_port, CE_pin, GPIO_PIN_SET);
}
void ce_pulse() {
ce_high();
HAL_Delay(1);
ce_low();
}
void rw(const uint8_t* tx, uint8_t* rx, uint16_t length) override{
HAL_SPI_TransmitReceive(SPI, const_cast<uint8_t*>(tx), rx, length, HAL_MAX_DELAY);
}
};
typedef Nrf_stm<(uint32_t)RADIO_CSN_GPIO_Port, RADIO_CSN_Pin, (uint32_t)RADIO_CE_GPIO_Port, RADIO_CE_Pin, &RADIO_SPI> radio_t;
#endif /* NRF_STM32_H_ */
+26
View File
@@ -0,0 +1,26 @@
#ifndef radio_protocol_h__
#define radio_protocol_h__
#include <cstddef>
#pragma pack(push, 1)
struct RadioPacketHeader {
union {
uint8_t value;
struct {
uint8_t pipe_id : 4;
uint8_t is_idle : 1;
uint8_t reserved : 3;
};
};
};
template<size_t MaxPayloadSize = 31>
struct RadioBuffer {
uint8_t payload_length;
RadioPacketHeader header;
uint8_t payload[MaxPayloadSize];
};
#pragma pack(pop)
#endif // radio_protocol_h__
+119
View File
@@ -0,0 +1,119 @@
/*
* syscalls.c
*
* Created on: 15 θών 2015 γ.
* Author: Sergey
*/
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include "hal_library.h"
#include "board.h"
extern UART_HandleTypeDef CONSOLE_UART;
extern int errno;
register char * stack_ptr asm("sp");
caddr_t _sbrk(int incr) {
extern char end asm("end");
static char *heap_end;
char *prev_heap_end;
if (heap_end == 0)
heap_end = &end;
prev_heap_end = heap_end;
if (heap_end + incr > stack_ptr) {
errno = ENOMEM;
return (caddr_t) -1;
}
heap_end += incr;
return (caddr_t) prev_heap_end;
}
#ifndef __errno_r
#include <sys/reent.h>
#define __errno_r(reent) reent->_errno
#endif
int _write_r(struct _reent *r, int file, char * ptr, int len){
(void)r;
(void)file;
(void)ptr;
while (HAL_UART_GetState(&CONSOLE_UART) == HAL_UART_STATE_BUSY_TX ||
HAL_UART_GetState(&CONSOLE_UART) == HAL_UART_STATE_BUSY_TX_RX)
{
}
//HAL_UART_Transmit_IT(&CONSOLE_UART, (uint8_t*)ptr, len);
HAL_UART_Transmit(&CONSOLE_UART, (uint8_t*)ptr, len, HAL_MAX_DELAY);
return len;
}
int _read_r(struct _reent *r, int file, char * ptr, int len)
{
(void)r;
(void)file;
(void)ptr;
(void)len;
__errno_r(r) = EINVAL;
return -1;
}
int _lseek_r(struct _reent *r, int file, int ptr, int dir){
(void)r;
(void)file;
(void)ptr;
(void)dir;
return 0;
}
int _close_r(struct _reent *r, int file){
(void)r;
(void)file;
return 0;
}
int _open_r ( struct _reent *ptr, const char *file, int flags, int mode ){
int fd = -1;
return fd;
}
int _fstat_r(struct _reent *r, int file, struct stat * st){
(void)r;
(void)file;
memset(st, 0, sizeof(*st));
st->st_mode = S_IFCHR;
return 0;
}
int _isatty_r(struct _reent *r, int fd){
(void)r;
(void)fd;
return 1;
}
int _kill (int a, int b){
(void)a;
(void)b;
return 0;
}
int _getpid(int a){
(void)a;
return 0;
}
void _exit(int status){
for(;;);
}