Skip to content
This repository was archived by the owner on Nov 19, 2022. It is now read-only.

Commit 8014f68

Browse files
committed
Define board specific configuration from generated defines.
1 parent bae8004 commit 8014f68

File tree

10 files changed

+7587
-471
lines changed

10 files changed

+7587
-471
lines changed

cores/scirocco/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ zephyr_sources(UartDevice.cpp)
1515
zephyr_sources(wiring.c)
1616
zephyr_sources(wiring_analog.c)
1717
zephyr_sources(wiring_digital.c)
18+
zephyr_sources(wiring_private.cpp)
1819
zephyr_sources(wiring_shift.c)
1920
zephyr_sources(WMath.cpp)
2021
zephyr_sources(WString.cpp)

cores/scirocco/wiring_analog.c

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ extern "C" {
2727
#include <adc.h>
2828
#include <pwm.h>
2929

30-
#ifndef W_PWM_DEV_NAME
31-
#define W_PWM_DEV_NAME(x) NULL
32-
#endif
33-
3430
#ifdef CONFIG_ADC
3531

3632
void analogReference( eAnalogReference ulMode )
@@ -66,11 +62,22 @@ void _analogReadResolution(int res)
6662

6763
#ifdef CONFIG_PWM
6864

65+
struct pindev { int pin; char* name; };
66+
static struct pindev pwm_pinmap[] = W_PWM_PIN2DEV_MAP;
67+
68+
static char* pwm_dev_name(int pin)
69+
{
70+
for(int i=0; i<sizeof(pwm_pinmap)/sizeof(struct pindev); i++) {
71+
if(pwm_pinmap[i].pin == pin) return pwm_pinmap[i].name;
72+
}
73+
return NULL;
74+
}
75+
6976
static int pwm_resolution = 255;
7077

7178
void analogWrite( uint32_t ulPin, uint32_t ulValue )
7279
{
73-
struct device* dev = device_get_binding(W_PWM_DEV_NAME(ulPin));
80+
struct device* dev = device_get_binding(pwm_dev_name(ulPin));
7481
if(!dev) return;
7582

7683
pwm_pin_set_cycles(dev, ulPin, pwm_resolution, ulValue);

cores/scirocco/wiring_private.cpp

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
#if 0
2+
#!/bin/bash
3+
#
4+
# generator script
5+
#
6+
# Copyright (c) 2020 Tokita, Hiroshi All right reserved.
7+
#
8+
# This library is free software; you can redistribute it and/or
9+
# modify it under the terms of the GNU Lesser General Public
10+
# License as published by the Free Software Foundation; either
11+
# version 2.1 of the License, or (at your option) any later version.
12+
#
13+
# This library is distributed in the hope that it will be useful,
14+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
15+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16+
# See the GNU Lesser General Public License for more details.
17+
#
18+
# You should have received a copy of the GNU Lesser General Public
19+
# License along with this library; if not, write to the Free Software
20+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21+
22+
N=0
23+
if [ $# -ne 0 ]; then
24+
N=$1
25+
fi
26+
27+
function ifel() {
28+
if [ $1 -eq 0 ] ; then echo "#if "
29+
else echo "#elif "
30+
fi
31+
}
32+
33+
head -$(grep -n '^#endif.*END_OF_SCRIPT.*' $0 | sed 's/:.*$//') $0
34+
35+
echo
36+
echo "/* START GENERATED SECTION */"
37+
echo
38+
39+
echo "#include \"Arduino.h\""
40+
echo "#include \"UartDevice.h\""
41+
echo "#include <zephyr.h>"
42+
echo "#include <device.h>"
43+
echo
44+
echo "#if defined(CONFIG_UART_INTERRUPT_DRIVEN) && (CONFIG_UART_INTERRUPT_DRIVEN != 0)"
45+
echo
46+
47+
for I in `seq 0 $N` ; do
48+
echo "#if defined(DT_UART_${I}_NAME)"
49+
echo "Uart Serial${I}(device_get_binding(DT_UART_${I}_NAME));"
50+
echo "#endif"
51+
done
52+
53+
echo
54+
55+
for I in `seq 0 $N` ; do
56+
echo "$(ifel ${I}) defined(DT_UART_${I}_NAME)"
57+
echo "Uart& Serial(Serial${I});"
58+
done
59+
echo "#endif"
60+
61+
echo "#endif"
62+
63+
echo
64+
echo "/* END GENERATED SECTION */"
65+
echo
66+
echo "#if 0"
67+
echo "COMMENTOUT"
68+
echo "#endif"
69+
70+
<<COMMENTOUT
71+
#endif /* END_OF_SCRIPT */
72+
73+
/* START GENERATED SECTION */
74+
75+
#include "Arduino.h"
76+
#include "UartDevice.h"
77+
#include <zephyr.h>
78+
#include <device.h>
79+
80+
#if defined(CONFIG_UART_INTERRUPT_DRIVEN) && (CONFIG_UART_INTERRUPT_DRIVEN != 0)
81+
82+
#if defined(DT_UART_0_NAME)
83+
Uart Serial0(device_get_binding(DT_UART_0_NAME));
84+
#endif
85+
#if defined(DT_UART_1_NAME)
86+
Uart Serial1(device_get_binding(DT_UART_1_NAME));
87+
#endif
88+
#if defined(DT_UART_2_NAME)
89+
Uart Serial2(device_get_binding(DT_UART_2_NAME));
90+
#endif
91+
#if defined(DT_UART_3_NAME)
92+
Uart Serial3(device_get_binding(DT_UART_3_NAME));
93+
#endif
94+
#if defined(DT_UART_4_NAME)
95+
Uart Serial4(device_get_binding(DT_UART_4_NAME));
96+
#endif
97+
#if defined(DT_UART_5_NAME)
98+
Uart Serial5(device_get_binding(DT_UART_5_NAME));
99+
#endif
100+
#if defined(DT_UART_6_NAME)
101+
Uart Serial6(device_get_binding(DT_UART_6_NAME));
102+
#endif
103+
#if defined(DT_UART_7_NAME)
104+
Uart Serial7(device_get_binding(DT_UART_7_NAME));
105+
#endif
106+
#if defined(DT_UART_8_NAME)
107+
Uart Serial8(device_get_binding(DT_UART_8_NAME));
108+
#endif
109+
#if defined(DT_UART_9_NAME)
110+
Uart Serial9(device_get_binding(DT_UART_9_NAME));
111+
#endif
112+
#if defined(DT_UART_10_NAME)
113+
Uart Serial10(device_get_binding(DT_UART_10_NAME));
114+
#endif
115+
#if defined(DT_UART_11_NAME)
116+
Uart Serial11(device_get_binding(DT_UART_11_NAME));
117+
#endif
118+
#if defined(DT_UART_12_NAME)
119+
Uart Serial12(device_get_binding(DT_UART_12_NAME));
120+
#endif
121+
#if defined(DT_UART_13_NAME)
122+
Uart Serial13(device_get_binding(DT_UART_13_NAME));
123+
#endif
124+
#if defined(DT_UART_14_NAME)
125+
Uart Serial14(device_get_binding(DT_UART_14_NAME));
126+
#endif
127+
#if defined(DT_UART_15_NAME)
128+
Uart Serial15(device_get_binding(DT_UART_15_NAME));
129+
#endif
130+
#if defined(DT_UART_16_NAME)
131+
Uart Serial16(device_get_binding(DT_UART_16_NAME));
132+
#endif
133+
#if defined(DT_UART_17_NAME)
134+
Uart Serial17(device_get_binding(DT_UART_17_NAME));
135+
#endif
136+
#if defined(DT_UART_18_NAME)
137+
Uart Serial18(device_get_binding(DT_UART_18_NAME));
138+
#endif
139+
#if defined(DT_UART_19_NAME)
140+
Uart Serial19(device_get_binding(DT_UART_19_NAME));
141+
#endif
142+
#if defined(DT_UART_20_NAME)
143+
Uart Serial20(device_get_binding(DT_UART_20_NAME));
144+
#endif
145+
#if defined(DT_UART_21_NAME)
146+
Uart Serial21(device_get_binding(DT_UART_21_NAME));
147+
#endif
148+
#if defined(DT_UART_22_NAME)
149+
Uart Serial22(device_get_binding(DT_UART_22_NAME));
150+
#endif
151+
#if defined(DT_UART_23_NAME)
152+
Uart Serial23(device_get_binding(DT_UART_23_NAME));
153+
#endif
154+
#if defined(DT_UART_24_NAME)
155+
Uart Serial24(device_get_binding(DT_UART_24_NAME));
156+
#endif
157+
#if defined(DT_UART_25_NAME)
158+
Uart Serial25(device_get_binding(DT_UART_25_NAME));
159+
#endif
160+
#if defined(DT_UART_26_NAME)
161+
Uart Serial26(device_get_binding(DT_UART_26_NAME));
162+
#endif
163+
#if defined(DT_UART_27_NAME)
164+
Uart Serial27(device_get_binding(DT_UART_27_NAME));
165+
#endif
166+
#if defined(DT_UART_28_NAME)
167+
Uart Serial28(device_get_binding(DT_UART_28_NAME));
168+
#endif
169+
#if defined(DT_UART_29_NAME)
170+
Uart Serial29(device_get_binding(DT_UART_29_NAME));
171+
#endif
172+
#if defined(DT_UART_30_NAME)
173+
Uart Serial30(device_get_binding(DT_UART_30_NAME));
174+
#endif
175+
#if defined(DT_UART_31_NAME)
176+
Uart Serial31(device_get_binding(DT_UART_31_NAME));
177+
#endif
178+
179+
#if defined(DT_UART_0_NAME)
180+
Uart& Serial(Serial0);
181+
#elif defined(DT_UART_1_NAME)
182+
Uart& Serial(Serial1);
183+
#elif defined(DT_UART_2_NAME)
184+
Uart& Serial(Serial2);
185+
#elif defined(DT_UART_3_NAME)
186+
Uart& Serial(Serial3);
187+
#elif defined(DT_UART_4_NAME)
188+
Uart& Serial(Serial4);
189+
#elif defined(DT_UART_5_NAME)
190+
Uart& Serial(Serial5);
191+
#elif defined(DT_UART_6_NAME)
192+
Uart& Serial(Serial6);
193+
#elif defined(DT_UART_7_NAME)
194+
Uart& Serial(Serial7);
195+
#elif defined(DT_UART_8_NAME)
196+
Uart& Serial(Serial8);
197+
#elif defined(DT_UART_9_NAME)
198+
Uart& Serial(Serial9);
199+
#elif defined(DT_UART_10_NAME)
200+
Uart& Serial(Serial10);
201+
#elif defined(DT_UART_11_NAME)
202+
Uart& Serial(Serial11);
203+
#elif defined(DT_UART_12_NAME)
204+
Uart& Serial(Serial12);
205+
#elif defined(DT_UART_13_NAME)
206+
Uart& Serial(Serial13);
207+
#elif defined(DT_UART_14_NAME)
208+
Uart& Serial(Serial14);
209+
#elif defined(DT_UART_15_NAME)
210+
Uart& Serial(Serial15);
211+
#elif defined(DT_UART_16_NAME)
212+
Uart& Serial(Serial16);
213+
#elif defined(DT_UART_17_NAME)
214+
Uart& Serial(Serial17);
215+
#elif defined(DT_UART_18_NAME)
216+
Uart& Serial(Serial18);
217+
#elif defined(DT_UART_19_NAME)
218+
Uart& Serial(Serial19);
219+
#elif defined(DT_UART_20_NAME)
220+
Uart& Serial(Serial20);
221+
#elif defined(DT_UART_21_NAME)
222+
Uart& Serial(Serial21);
223+
#elif defined(DT_UART_22_NAME)
224+
Uart& Serial(Serial22);
225+
#elif defined(DT_UART_23_NAME)
226+
Uart& Serial(Serial23);
227+
#elif defined(DT_UART_24_NAME)
228+
Uart& Serial(Serial24);
229+
#elif defined(DT_UART_25_NAME)
230+
Uart& Serial(Serial25);
231+
#elif defined(DT_UART_26_NAME)
232+
Uart& Serial(Serial26);
233+
#elif defined(DT_UART_27_NAME)
234+
Uart& Serial(Serial27);
235+
#elif defined(DT_UART_28_NAME)
236+
Uart& Serial(Serial28);
237+
#elif defined(DT_UART_29_NAME)
238+
Uart& Serial(Serial29);
239+
#elif defined(DT_UART_30_NAME)
240+
Uart& Serial(Serial30);
241+
#elif defined(DT_UART_31_NAME)
242+
Uart& Serial(Serial31);
243+
#endif
244+
#endif
245+
246+
/* END GENERATED SECTION */
247+
248+
#if 0
249+
COMMENTOUT
250+
#endif

0 commit comments

Comments
 (0)