Skip to content

Commit 46c4407

Browse files
committed
cmake testing
1 parent 27688d8 commit 46c4407

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+8672
-55
lines changed

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,6 @@
8282
"cinttypes": "cpp",
8383
"typeinfo": "cpp",
8484
"variant": "cpp"
85-
}
85+
},
86+
"cmake.default.generator": "MinGW Makefiles"
8687
}

cores/arduino/CMakeLists.txt

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
if(NOT TARGET LIB_ARDUINO_CORE)
2+
add_library(LIB_ARDUINO_CORE STATIC "")
3+
4+
target_sources(LIB_ARDUINO_CORE
5+
PRIVATE
6+
${CMAKE_CURRENT_LIST_DIR}/digital.cpp
7+
${CMAKE_CURRENT_LIST_DIR}/dtostrf.cpp
8+
${CMAKE_CURRENT_LIST_DIR}/itoa.cpp
9+
${CMAKE_CURRENT_LIST_DIR}/UART.cpp
10+
${CMAKE_CURRENT_LIST_DIR}/UART0.cpp
11+
${CMAKE_CURRENT_LIST_DIR}/UART1.cpp
12+
${CMAKE_CURRENT_LIST_DIR}/UART2.cpp
13+
${CMAKE_CURRENT_LIST_DIR}/UART3.cpp
14+
15+
${CMAKE_CURRENT_LIST_DIR}/api/CanMsg.cpp
16+
${CMAKE_CURRENT_LIST_DIR}/api/CanMsgRingbuffer.cpp
17+
${CMAKE_CURRENT_LIST_DIR}/api/Common.cpp
18+
${CMAKE_CURRENT_LIST_DIR}/api/IPAddress.cpp
19+
${CMAKE_CURRENT_LIST_DIR}/api/PluggableUSB.cpp
20+
${CMAKE_CURRENT_LIST_DIR}/api/Print.cpp
21+
${CMAKE_CURRENT_LIST_DIR}/api/Stream.cpp
22+
${CMAKE_CURRENT_LIST_DIR}/api/String.cpp
23+
24+
25+
PUBLIC
26+
${CMAKE_CURRENT_LIST_DIR}/Arduino.h
27+
${CMAKE_CURRENT_LIST_DIR}/UART.h
28+
29+
${CMAKE_CURRENT_LIST_DIR}/api/ArduinoAPI.h
30+
${CMAKE_CURRENT_LIST_DIR}/api/Binary.h
31+
${CMAKE_CURRENT_LIST_DIR}/api/CanMsg.h
32+
${CMAKE_CURRENT_LIST_DIR}/api/Client.h
33+
${CMAKE_CURRENT_LIST_DIR}/api/Common.h
34+
${CMAKE_CURRENT_LIST_DIR}/api/Compat.h
35+
${CMAKE_CURRENT_LIST_DIR}/api/DMAPool.h
36+
${CMAKE_CURRENT_LIST_DIR}/api/HardwareCAN.h
37+
${CMAKE_CURRENT_LIST_DIR}/api/HardwareI2C.h
38+
${CMAKE_CURRENT_LIST_DIR}/api/HardwareSerial.h
39+
${CMAKE_CURRENT_LIST_DIR}/api/HardwareSPI.h
40+
${CMAKE_CURRENT_LIST_DIR}/api/Interrupts.h
41+
${CMAKE_CURRENT_LIST_DIR}/api/IPAddress.h
42+
${CMAKE_CURRENT_LIST_DIR}/api/itoa.h
43+
${CMAKE_CURRENT_LIST_DIR}/api/PluggableUSB.h
44+
${CMAKE_CURRENT_LIST_DIR}/api/Print.h
45+
${CMAKE_CURRENT_LIST_DIR}/api/Printable.h
46+
${CMAKE_CURRENT_LIST_DIR}/api/RingBuffer.h
47+
${CMAKE_CURRENT_LIST_DIR}/api/Server.h
48+
${CMAKE_CURRENT_LIST_DIR}/api/Stream.h
49+
${CMAKE_CURRENT_LIST_DIR}/api/String.h
50+
${CMAKE_CURRENT_LIST_DIR}/api/Udp.h
51+
${CMAKE_CURRENT_LIST_DIR}/api/USBAPI.h
52+
${CMAKE_CURRENT_LIST_DIR}/api/WCharacter.h
53+
54+
${CMAKE_CURRENT_LIST_DIR}/mock/MillisFake.h
55+
${CMAKE_CURRENT_LIST_DIR}/mock/PrintableMock.h
56+
${CMAKE_CURRENT_LIST_DIR}/mock/PrintMock.h
57+
${CMAKE_CURRENT_LIST_DIR}/mock/StreamMock.h
58+
59+
60+
)
61+
target_include_directories(LIB_ARDUINO_CORE
62+
PUBLIC
63+
${CMAKE_CURRENT_LIST_DIR}
64+
${MCU_VARIANT_PATH}
65+
)
66+
target_link_libraries(LIB_ARDUINO_CORE
67+
PUBLIC ${LIB_MCU_VARIANT}
68+
)
69+
install(
70+
TARGETS LIB_ARDUINO_CORE
71+
RUNTIME_DEPENDENCIES
72+
)
73+
74+
75+
endif()

cores/arduino/Stream.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#include "api/Stream.h"

cores/arduino/UART.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
#include "UART.h"
3030

3131

32-
#include "StreamMock.h"
32+
#include "mock/StreamMock.h"
3333

3434
/*
3535
void serialEventRun(void)

cores/arduino/UART.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#include "api/HardwareSerial.h"
2828
#include "pins_arduino.h"
2929

30-
#include "StreamMock.h"
30+
#include "mock/StreamMock.h"
3131

3232

3333
using namespace arduino;

cores/arduino/digital.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#include "Arduino.h"
2+
3+
void pinMode(pin_size_t pin, const PinMode mode) {
4+
switch (mode) {
5+
case INPUT:
6+
case INPUT_PULLDOWN: // TODO: document the INPUT_PULLDOWN is unavailable
7+
//R_IOPORT_PinCfg(NULL, g_pin_cfg[pin].pin, IOPORT_CFG_PORT_DIRECTION_INPUT);
8+
break;
9+
case INPUT_PULLUP:
10+
//R_IOPORT_PinCfg(NULL, g_pin_cfg[pin].pin, IOPORT_CFG_PORT_DIRECTION_INPUT | IOPORT_CFG_PULLUP_ENABLE);
11+
break;
12+
case OUTPUT:
13+
//R_IOPORT_PinCfg(NULL, g_pin_cfg[pin].pin, IOPORT_CFG_PORT_DIRECTION_OUTPUT);
14+
break;
15+
case OUTPUT_OPENDRAIN:
16+
//R_IOPORT_PinCfg(NULL, g_pin_cfg[pin].pin, IOPORT_CFG_PORT_DIRECTION_OUTPUT | IOPORT_CFG_PMOS_ENABLE);
17+
break;
18+
}
19+
}
20+
21+
void digitalWrite(pin_size_t pin, PinStatus val) {
22+
//R_IOPORT_PinWrite(NULL, g_pin_cfg[pin].pin, val == LOW ? BSP_IO_LEVEL_LOW : BSP_IO_LEVEL_HIGH);
23+
}
24+
25+
PinStatus digitalRead(pin_size_t pin) {
26+
//bsp_io_level_t ret;
27+
//R_IOPORT_PinRead(NULL, g_pin_cfg[pin].pin, &ret);
28+
return (true ? LOW : HIGH);
29+
}

cores/arduino/mock/MillisFake.h

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright (c) 2020 Arduino. All rights reserved.
3+
*/
4+
5+
#ifndef MILLIS_FAKE_H_
6+
#define MILLIS_FAKE_H_
7+
8+
/**************************************************************************************
9+
* INCLUDE
10+
**************************************************************************************/
11+
12+
#include <api/Common.h>
13+
14+
/**************************************************************************************
15+
* FUNCTION DECLARATION
16+
**************************************************************************************/
17+
18+
#ifdef __cplusplus
19+
extern "C" {
20+
#endif
21+
22+
void millis_autoOn();
23+
void millis_autoOff();
24+
void set_millis(unsigned long const val);
25+
26+
27+
#ifdef __cplusplus
28+
}
29+
#endif
30+
31+
#endif /* MILLIS_FAKE_H_ */

cores/arduino/mock/PrintMock.h

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
/*
2+
* Copyright (c) 2020 Arduino. All rights reserved.
3+
*/
4+
5+
#ifndef PRINT_MOCK_H_
6+
#define PRINT_MOCK_H_
7+
8+
/**************************************************************************************
9+
* INCLUDE
10+
**************************************************************************************/
11+
12+
#include <string>
13+
14+
#include <api/Print.h>
15+
#include <api/ArduinoAPI.h>
16+
17+
18+
#include <stddef.h>
19+
#include <stdint.h>
20+
#include <string.h>
21+
//#if !defined(ARDUINO)
22+
#include <iostream>
23+
#include <sstream>
24+
25+
26+
/**************************************************************************************
27+
* CLASS DECLARATION
28+
**************************************************************************************/
29+
30+
class PrintMock : public arduino::Print
31+
{
32+
public:
33+
std::string _str;
34+
virtual size_t write(uint8_t b) override;
35+
void mock_setWriteError() { setWriteError(); }
36+
void mock_setWriteError(int err) { setWriteError(err); }
37+
};
38+
39+
40+
struct CppStreamPrint : PrintMock {
41+
std::ostream &out;
42+
CppStreamPrint(std::ostream &_out = std::cout);
43+
size_t write(uint8_t c);
44+
size_t write(const uint8_t *buffer, size_t size);
45+
int availableForWrite();
46+
};
47+
48+
49+
50+
51+
#endif /* PRINT_MOCK_H_ */

cores/arduino/mock/PrintableMock.h

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
* Copyright (c) 2020 Arduino. All rights reserved.
3+
*/
4+
5+
#ifndef PRINTABLE_MOCK_H_
6+
#define PRINTABLE_MOCK_H_
7+
8+
/**************************************************************************************
9+
* INCLUDE
10+
**************************************************************************************/
11+
12+
#include <string>
13+
14+
#include <api/Printable.h>
15+
16+
/**************************************************************************************
17+
* CLASS DECLARATION
18+
**************************************************************************************/
19+
20+
class PrintableMock : public arduino::Printable
21+
{
22+
public:
23+
int _i;
24+
virtual size_t printTo(arduino::Print& p) const override
25+
{
26+
size_t written = 0;
27+
//written += p.print("PrintableMock i = ");
28+
//written += p.print(_i);
29+
return written;
30+
};
31+
32+
33+
};
34+
35+
#endif /* PRINTABLE_MOCK_H_ */

cores/arduino/mock/StreamMock.h

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Copyright (c) 2020 Arduino. All rights reserved.
3+
*/
4+
5+
#ifndef STREAM_MOCK_H_
6+
#define STREAM_MOCK_H_
7+
8+
/**************************************************************************************
9+
* INCLUDE
10+
**************************************************************************************/
11+
12+
#include <deque>
13+
14+
#include <api/Stream.h>
15+
16+
/**************************************************************************************
17+
* CLASS DECLARATION
18+
**************************************************************************************/
19+
20+
class StreamMock : public arduino::Stream
21+
{
22+
public:
23+
24+
void operator << (char const * str);
25+
26+
virtual size_t write(uint8_t ch) override;
27+
virtual size_t write(uint8_t buf[], uint8_t leng);
28+
virtual int available() override;
29+
virtual int read() override;
30+
virtual int peek() override;
31+
32+
private:
33+
std::deque<char> _stream;
34+
35+
};
36+
37+
//extern StreamMock Serial;
38+
//extern StreamMock Serial1;
39+
40+
#endif /* STREAM_MOCK_H_ */

0 commit comments

Comments
 (0)