Skip to content

Commit 9f80e9f

Browse files
authored
Merge pull request #95 from facchinm/opta
Initial: add Opta target
2 parents ec37466 + 338b78a commit 9f80e9f

File tree

5 files changed

+281
-0
lines changed

5 files changed

+281
-0
lines changed

boards.txt

+65
Original file line numberDiff line numberDiff line change
@@ -488,3 +488,68 @@ portentac33.bootloader.file=zephyr-{build.variant}.bin
488488
portentac33.bootloader.interface=0
489489
portentac33.bootloader.address=0x10000
490490
portentac33.bootloader.dfuse=-Q
491+
492+
##########################################################################################
493+
494+
opta.name=Arduino Opta
495+
opta.build.core=arduino
496+
opta.build.crossprefix=arm-zephyr-eabi-
497+
opta.build.compiler_path={runtime.tools.arm-zephyr-eabi-0.16.8.path}/bin/
498+
499+
opta.menu.debug.false=Standard
500+
opta.menu.debug.true=Debug
501+
502+
opta.menu.debug.false.postbuild_debug=
503+
opta.menu.debug.true.postbuild_debug=-debug
504+
505+
opta.build.variant=arduino_opta_stm32h747xx_m7
506+
opta.build.mcu=cortex-m7
507+
opta.build.fpu=-mfpu=fpv5-d16
508+
opta.build.architecture=cortex-m7
509+
opta.compiler.zephyr.arch.define=-DCORE_CM7
510+
511+
opta.build.float-abi=-mfloat-abi=softfp
512+
opta.build.extra_flags=
513+
opta.build.postbuild.cmd="{tools.imgtool.path}/{tools.imgtool.cmd}" exit
514+
opta.build.architecture=cortex-m7
515+
opta.build.board=ARDUINO_OPTA
516+
opta.compiler.zephyr=
517+
opta.vid.0=0x2341
518+
opta.pid.0=0x0064
519+
opta.upload_port.0.vid=0x2341
520+
opta.upload_port.0.pid=0x0364
521+
522+
opta.upload.tool=dfu-util
523+
opta.upload.tool.default=dfu-util
524+
opta.upload.protocol=
525+
opta.upload.transport=
526+
opta.upload.vid=0x2341
527+
opta.upload.pid=0x0364
528+
opta.upload.interface=0
529+
opta.upload.use_1200bps_touch=true
530+
opta.upload.wait_for_upload_port=true
531+
opta.upload.native_usb=true
532+
opta.upload.maximum_size=1966080
533+
opta.upload.maximum_data_size=523624
534+
535+
opta.upload.address=0x080E0000
536+
537+
opta.upload.maximum_size=786432
538+
opta.upload.maximum_data_size=523624
539+
540+
opta.bootloader.tool=dfu-util
541+
opta.bootloader.tool.default=dfu-util
542+
opta.bootloader.vid=0x2341
543+
opta.bootloader.pid=0x0364
544+
opta.bootloader.interface=0
545+
opta.bootloader.file=zephyr-{build.variant}.bin
546+
opta.bootloader.address=0x08040000
547+
548+
opta.debug.tool=gdb
549+
opta.debug.server.openocd.scripts.0=interface/{programmer.protocol}.cfg
550+
opta.debug.server.openocd.scripts.1={programmer.transport_script}
551+
opta.debug.server.openocd.scripts.2=target/stm32h7x_dual_bank.cfg
552+
opta.debug.cortex-debug.custom.request=attach
553+
opta.debug.svd_file={runtime.platform.path}/svd/STM32H747_CM7.svd
554+
555+
##############################################################################################################
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
CONFIG_USB_DEVICE_STACK=y
2+
CONFIG_USB_DEVICE_PRODUCT="Arduino Opta"
3+
CONFIG_USB_DEVICE_MANUFACTURER="Arduino"
4+
CONFIG_USB_DEVICE_VID=0x2341
5+
CONFIG_USB_DEVICE_PID=0x0064
6+
7+
CONFIG_USB_CDC_ACM=y
8+
CONFIG_USB_CDC_ACM_RINGBUF_SIZE=512
9+
CONFIG_UART_LINE_CTRL=y
10+
CONFIG_CDC_ACM_DTE_RATE_CALLBACK_SUPPORT=y
11+
12+
CONFIG_LLEXT_STORAGE_WRITABLE=n
13+
14+
CONFIG_HEAP_MEM_POOL_SIZE=2048
15+
CONFIG_SHELL_STACK_SIZE=32768
16+
CONFIG_MAIN_STACK_SIZE=32768
17+
CONFIG_LLEXT_HEAP_SIZE=128
18+
19+
CONFIG_FPU=y
20+
21+
CONFIG_ADC=y
22+
CONFIG_DAC=n
23+
CONFIG_PWM=n
24+
25+
CONFIG_ICACHE=y
26+
CONFIG_DCACHE=y
27+
CONFIG_CACHE_MANAGEMENT=y
28+
29+
CONFIG_DMA=y
30+
CONFIG_MEMC=y
31+
CONFIG_SPI_ASYNC=y
32+
CONFIG_SPI_STM32_INTERRUPT=y
33+
34+
CONFIG_FPU=y
35+
CONFIG_ICACHE=y
36+
CONFIG_DCACHE=y
37+
CONFIG_CACHE_MANAGEMENT=y
38+
39+
CONFIG_USERSPACE=n
40+
CONFIG_ARM_MPU=y
41+
CONFIG_MAX_THREAD_BYTES=4
42+
43+
CONFIG_NETWORKING=y
44+
CONFIG_NET_IPV6=n
45+
CONFIG_NET_IPV4=y
46+
CONFIG_NET_ARP=y
47+
CONFIG_NET_UDP=y
48+
CONFIG_NET_DHCPV4=y
49+
CONFIG_NET_DHCPV4_OPTION_CALLBACKS=y
50+
CONFIG_DNS_RESOLVER=y
51+
CONFIG_DNS_SERVER_IP_ADDRESSES=y
52+
CONFIG_DNS_SERVER1="8.8.8.8"
53+
54+
CONFIG_INIT_STACKS=y
55+
56+
CONFIG_NET_SOCKETS=y
57+
CONFIG_NET_SOCKETS_NET_MGMT=y
58+
CONFIG_NET_SOCKETS_SOCKOPT_TLS=y
59+
CONFIG_NET_MGMT=y
60+
CONFIG_NET_MGMT_EVENT=y
61+
CONFIG_NET_L2_ETHERNET=y
62+
CONFIG_NET_L2_ETHERNET_MGMT=y
63+
64+
CONFIG_TINYCRYPT=y
65+
CONFIG_TINYCRYPT_AES=y
66+
CONFIG_TINYCRYPT_SHA256=y
67+
CONFIG_TINYCRYPT_SHA256_HMAC=y
68+
CONFIG_TINYCRYPT_AES_CCM=y
69+
CONFIG_TINYCRYPT_AES_CTR=y
70+
CONFIG_TINYCRYPT_AES_CBC=y
71+
CONFIG_TINYCRYPT_AES_CMAC=y
72+
CONFIG_TINYCRYPT_CTR_PRNG=y
73+
CONFIG_ENTROPY_GENERATOR=y
74+
CONFIG_TEST_RANDOM_GENERATOR=y
75+
76+
CONFIG_NET_TX_STACK_SIZE=8192
77+
CONFIG_NET_RX_STACK_SIZE=8192
78+
CONFIG_NET_TCP_WORKQ_STACK_SIZE=8192
79+
CONFIG_NET_MGMT_EVENT_STACK_SIZE=8192
80+
CONFIG_NET_TCP=y
81+
CONFIG_NET_SOCKETS=y
82+
CONFIG_POSIX_API=y
83+
84+
CONFIG_MBEDTLS=y
85+
CONFIG_MBEDTLS_BUILTIN=y
86+
CONFIG_MBEDTLS_PEM_CERTIFICATE_FORMAT=y
87+
CONFIG_MBEDTLS_ENABLE_HEAP=y
88+
CONFIG_MBEDTLS_HEAP_SIZE=60000
89+
CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=7168
90+
CONFIG_MBEDTLS_HASH_ALL_ENABLED=y
91+
CONFIG_MBEDTLS_CMAC=y
92+
93+
CONFIG_LLEXT_LOG_LEVEL_INF=y
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
&usart6 {
2+
status = "okay";
3+
pinctrl-0 = <&usart6_tx_pg14 &usart6_rx_pg9>;
4+
pinctrl-names = "default";
5+
current-speed = <115200>;
6+
};
7+
8+
&usart3 {
9+
status = "okay";
10+
};
11+
12+
&adc1 {
13+
status = "okay";
14+
};
15+
16+
&adc2 {
17+
status = "okay";
18+
};
19+
20+
&adc3 {
21+
status = "okay";
22+
};
23+
24+
&i2c1 {
25+
status = "okay";
26+
pinctrl-0 = <&i2c1_scl_pb8 &i2c1_sda_pb9>;
27+
pinctrl-names = "default";
28+
clock-frequency = <I2C_BITRATE_FAST>;
29+
};
30+
31+
&i2c3 {
32+
status = "okay";
33+
pinctrl-0 = <&i2c3_scl_ph7 &i2c3_sda_ph8>;
34+
pinctrl-names = "default";
35+
clock-frequency = <I2C_BITRATE_FAST>;
36+
};
37+
38+
/{
39+
chosen {
40+
zephyr,console = &usart6;
41+
zephyr,shell-uart = &usart6;
42+
zephyr,uart-mcumgr = &usart6;
43+
};
44+
45+
/* used to overcome problems with _C analog pins */
46+
gpioz: gpio@deadbeef {
47+
compatible = "vnd,gpio";
48+
gpio-controller;
49+
reg = <0xdeadbeef 0x1000>;
50+
#gpio-cells = <0x2>;
51+
status = "okay";
52+
};
53+
};
54+
55+
&flash0 {
56+
partitions {
57+
user_sketch: partition@e0000 {
58+
reg = <0x0E0000 0x20000>;
59+
};
60+
};
61+
};
62+
63+
/ {
64+
zephyr,user {
65+
digital-pin-gpios = <&gpioi 6 0>, /* Outputs */
66+
<&gpioi 5 0>,
67+
<&gpioi 7 0>,
68+
<&gpioi 4 0>,
69+
<&gpioi 0 0>, /* LEDs */
70+
<&gpioi 1 0>,
71+
<&gpioi 3 0>,
72+
<&gpioh 15 0>,
73+
<&gpioh 12 0>,
74+
<&gpioh 11 0>,
75+
<&gpioe 5 0>,
76+
<&gpioe 4 0>, /* User button */
77+
<&gpioz 0 0>, /* Inputs */
78+
<&gpioz 1 0>,
79+
<&gpiof 12 0>,
80+
<&gpiob 0 0>,
81+
<&gpiof 10 0>,
82+
<&gpiof 8 0>,
83+
<&gpiof 6 0>,
84+
<&gpiof 4 0>,
85+
<&gpiog 8 0>, /* bus detect */
86+
<&gpiob 14 0>, /* Modbus DE */
87+
<&gpiob 13 0>; /* Modbus RE */
88+
89+
builtin-led-gpios = <&gpioe 5 0>,
90+
<&gpioh 12 0>,
91+
<&gpioh 11 0>;
92+
93+
adc-pin-gpios = <&gpioz 0 0>,
94+
<&gpioz 1 0>,
95+
<&gpiof 12 0>,
96+
<&gpiob 0 0>,
97+
<&gpiof 10 0>,
98+
<&gpiof 8 0>,
99+
<&gpiof 6 0>,
100+
<&gpiof 4 0>;
101+
102+
serials = <&board_cdc_acm_uart>, <&usart3>, <&usart6>;
103+
cdc-acm = <&board_cdc_acm_uart>;
104+
i2cs = <&i2c1>, <&i2c3>;
105+
106+
io-channels = <&adc1 0>,
107+
<&adc3 0>,
108+
<&adc1 6>,
109+
<&adc2 9>,
110+
<&adc3 6>,
111+
<&adc3 7>,
112+
<&adc3 8>,
113+
<&adc3 9>;
114+
};
115+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include <zephyr/kernel.h>
2+
3+
void _on_1200_bps() {
4+
uint32_t tmp = (uint32_t) & (RTC->BKP0R);
5+
tmp += (RTC_BKP_DR0 * 4U);
6+
*(__IO uint32_t *)tmp = (uint32_t)0xDF59;
7+
NVIC_SystemReset();
8+
}

variants/arduino_opta_stm32h747xx_m7/variant.h

Whitespace-only changes.

0 commit comments

Comments
 (0)