@@ -23,8 +23,21 @@ produces an executable with a `.out` extension, for example, `SampleTest.out`.
2323The ` Serial ` port object sends the output to the ` STDOUT ` and reads from the
2424` STDIN ` of the Unix host environment. Most other hardware dependent
2525features (e.g. I2C, SPI, GPIO) are stubbed out (defined but don't do anything)
26- to allow the Arduino programs to compile. This may be sufficient for a CI
27- pipeline. For actual application development, I have started to build a set of
26+ to allow the Arduino programs to compile. Mock versions of various libraries are
27+ also provided:
28+
29+ * ` <Wire.h> ` : mock I2C library
30+ * ` <SPI.h> ` : mock SPI library
31+ * [ EpoxyMockDigitalWriteFast] ( libraries/EpoxyMockDigitalWriteFast ) : mock
32+ version of the ` digitalWriteFast ` libraries
33+ * [ EpoxyMockTimerOne] ( libraries/EpoxyMockTimerOne ) : mock version of the
34+ TimerOne (https://github.com/PaulStoffregen/TimerOne ) library
35+ * [ EpoxyMockFastLED] ( libraries/EpoxyMockFastLED/ ) : mock version of the
36+ FastLED (https://github.com/FastLED/FastLED ) library
37+
38+ These mock libraries may be sufficient for a CI pipeline.
39+
40+ For actual application development, I have started to build a set of
2841libraries within EpoxyDuino which emulate the versions that run the actual
2942hardware:
3043
@@ -55,7 +68,7 @@ The disadvantages are:
5568 environments (e.g. 16-bit ` int ` versus 32-bit ` int ` , or 32-bit ` long ` versus
5669 64-bit ` long ` ).
5770
58- ** Version** : 1.0 (2021-09-30 )
71+ ** Version** : 1.1. 0 (2021-12-09 )
5972
6073** Changelog** : See [ CHANGELOG.md] ( CHANGELOG.md )
6174
@@ -74,6 +87,7 @@ The disadvantages are:
7487 * [ Alternate C++ Compiler] ( #AlternateCompiler )
7588 * [ Generated Source Code] ( #GeneratedSourceCode )
7689 * [ Additional Clean Up] ( #AdditionalCleanUp )
90+ * [ Additional Dependencies] ( #AdditionalDependencies )
7791 * [ Alternate Arduino Core] ( #AlternateArduinoCore )
7892 * [ PlatformIO] ( #PlatformIO )
7993 * [ Command Line Flags and Arguments] ( #CommandLineFlagsAndArguments )
@@ -488,6 +502,19 @@ more_clean:
488502 rm -f epoxyeepromdata
489503```
490504
505+ <a name =" AdditionalDependencies " ></a >
506+ ### Additional Dependencies
507+
508+ Sometimes the ` *.ino ` file depend on additional header files within the same
509+ directory. When these header files are modified, the ` *.ino ` file must be
510+ recompiled. These additional header files can be listed in the ` DEPS ` variable:
511+
512+ ```
513+ DEPS := header1.h header2.h
514+ ...
515+ include {path/to/EpoxyDuino.mk}
516+ ```
517+
491518<a name =" AlternateArduinoCore " ></a >
492519### Alternate Arduino Core
493520
@@ -606,7 +633,8 @@ A more advanced example can be seen in
606633<a name =" ArduinoFunctions " ></a >
607634### Arduino Functions
608635
609- The following functions and features of the Arduino framework are implemented:
636+ The following is an incomplete list of Arduino functions and features
637+ which are implemented:
610638
611639* ` Arduino.h `
612640 * ` setup() ` , ` loop() `
@@ -615,6 +643,12 @@ The following functions and features of the Arduino framework are implemented:
615643 * ` digitalWrite() ` , ` digitalRead() ` , ` pinMode() ` (empty stubs)
616644 * ` analogRead() ` , ` analogWrite() ` (empty stubs)
617645 * ` pulseIn() ` , ` pulseInLong() ` , ` shiftIn() ` , ` shiftOut() ` (empty stubs)
646+ * ` min() ` , ` max() ` , ` abs() ` , ` round() ` , etc
647+ * ` bit() ` , ` bitRead() ` , ` bitSet() ` , ` bitClear() ` , ` bitWrite() `
648+ * ` random() ` , ` randomSeed() ` , ` map() `
649+ * ` makeWord() `
650+ * ` F_CPU ` , ` clockCyclesPerMicrosecond(), ` clockCyclesToMicroseconds(),
651+ ` microsecondsToClockCycles() `
618652 * ` HIGH ` , ` LOW ` , ` INPUT ` , ` OUTPUT ` , ` INPUT_PULLUP `
619653 * I2C and SPI pins: ` SS ` , ` MOSI ` , ` MISO ` , ` SCK ` , ` SDA ` , ` SCL `
620654 * typedefs: ` boolean ` , ` byte ` , ` word `
@@ -644,14 +678,13 @@ The following functions and features of the Arduino framework are implemented:
644678* ` Wire.h ` (stub implementation)
645679* ` SPI.h ` (stub implementation)
646680
647- See
648- [ Arduino.h] ( https://github.com/bxparks/EpoxyDuino/blob/develop/cores/epoxy/Arduino.h )
681+ See [ Arduino.h] ( cores/epoxy/Arduino.h )
649682for the latest list. Most of the header files included by this ` Arduino.h `
650683file were copied and modified from the [ arduino: avr
651684core] ( https://github.com/arduino/ArduinoCore-avr/tree/master/cores/arduino ) ,
652- versions 1 .8.2 (if I recall) or 1 .8.3. A number of tweaks have been made to
653- support slight variations in the API of other platforms, particularly the
654- ESP8266 and ESP32 cores.
685+ v1 .8.2 or v1 .8.3. A number of tweaks have been made to support slight variations
686+ in the API of other platforms, particularly the ESP8266 v2.7.4 and ESP32 v1.0.6
687+ cores.
655688
656689The ` Print.printf() ` function is an extension to the ` Print ` class that is
657690provided by many Arduino-compatible microcontrollers (but not the AVR
@@ -729,7 +762,7 @@ These 3 types are described in more detail below.
729762### Inherently Compatible Libraries
730763
731764Almost all libraries that I write will be inherently compatible with EpoxyDuino
732- because EpoxyDuino is what I use to my libraries.
765+ because EpoxyDuino is what I use to develop and test my libraries.
733766
734767* AUnit (https://github.com/bxparks/AUnit )
735768* AceButton (https://github.com/bxparks/AceButton )
@@ -802,6 +835,8 @@ intended. This limitation may be sufficient for Continous Integration purposes.
802835* [ EpoxyMockTimerOne] ( libraries/EpoxyMockTimerOne )
803836 * A simple mock of the TimerOne (https://github.com/PaulStoffregen/TimerOne )
804837 library.
838+ * [ EpoxyMockFastLED] ( libraries/EpoxyMockFastLED/ )
839+ * Mock version of the FastLED (https://github.com/FastLED/FastLED ) library.
805840* EspMock (https://github.com/hsaturn/EspMock )
806841 * This is a separate project that provides various mocks for functions and
807842 libraries included with the ESP8266 and the ESP32 processors.
@@ -811,7 +846,7 @@ intended. This limitation may be sufficient for Continous Integration purposes.
811846<a name =" SystemRequirements " ></a >
812847## System Requirements
813848
814- This library has been tested on:
849+ This library has Tier 1 support on:
815850
816851* Ubuntu 18.04
817852 * g++ (Ubuntu 7.5.0-3ubuntu1~ 18.04) 7.5.0
@@ -822,6 +857,9 @@ This library has been tested on:
822857 * g++ (Ubuntu 9.3.0-10ubuntu2) 9.3.0
823858 * clang++ version 10.0.0-4ubuntu1
824859 * GNU Make 4.2.1
860+
861+ The following environments are Tier 2 because I do not test them often enough:
862+
825863* Raspbian GNU/Linux 10 (buster)
826864 * On Raspberry Pi Model 3B
827865 * g++ (Raspbian 8.3.0-6+rpi1) 8.3.0
@@ -853,14 +891,14 @@ None that I am aware of.
853891<a name =" FeedbackAndSupport " ></a >
854892## Feedback and Support
855893
856- If you have any questions, comments and other support questions about how to
857- use this library, please use the
858- [ GitHub Discussions] ( https://github.com/bxparks/EpoxyDuino/discussions )
859- for this project. If you have bug reports or feature requests , please file a
860- ticket in [ GitHub Issues] ( https://github.com/bxparks/EpoxyDuino/issues ) .
861- I'd love to hear about how this software and its documentation can be improved.
862- I can't promise that I will incorporate everything, but I will give your ideas
863- serious consideration .
894+ If you have any questions, comments, or feature requests for this library,
895+ please use the [ GitHub
896+ Discussions] ( https://github.com/bxparks/EpoxyDuino/discussions ) for this
897+ project. If you have bug reports, please file a ticket in [ GitHub
898+ Issues] ( https://github.com/bxparks/EpoxyDuino/issues ) . Feature requests should
899+ go into Discussions first because they often have alternative solutions which
900+ are useful to remain visible, instead of disappearing from the default view of
901+ the Issue tracker after the ticket is closed .
864902
865903Please refrain from emailing me directly unless the content is sensitive. The
866904problem with email is that I cannot reference the email conversation when other
@@ -875,5 +913,5 @@ people ask similar questions later.
875913* Add ` delayMicroSeconds() ` , ` WCharacter.h ` , and stub implementations of
876914 ` IPAddress.h ` , ` SPI.h ` , by Erik Tideman (@ramboerik ), see
877915 [ PR #18 ] ( https://github.com/bxparks/EpoxyDuino/pull/18 ) .
878- * Add ` memcpy_P() ` and ` vsnprintf_P() ` by @pmp-p ,
916+ * Add ` memcpy_P() ` and ` vsnprintf_P() ` by @pmp-p ,
879917 [ PR #28 ] ( https://github.com/bxparks/EpoxyDuino/pull/28 ) .
0 commit comments