• R/O
  • SSH
  • HTTPS

chibios: Commit


Commit MetaInfo

Revision13091 (tree)
Time2019-10-07 14:32:30
Authorgdisirio

Log Message

DAC demo for G4.

Change Summary

Incremental Difference

--- trunk/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h (revision 13090)
+++ trunk/os/hal/ports/STM32/LLD/DACv1/hal_dac_lld.h (revision 13091)
@@ -592,8 +592,9 @@
592592 dacsample_t init; \
593593 /* DAC data holding register mode.*/ \
594594 dacdhrmode_t datamode; \
595- /* DAC control register.*/ \
596- uint16_t cr
595+ /* DAC control register lower 16 bits.*/ \
596+ uint32_t cr
597+
597598 /**
598599 * @brief Low level fields of the DAC group configuration structure.
599600 */
--- trunk/testhal/STM32/multi/DAC/cfg/stm32g474re_nucleo64/chconf.h (nonexistent)
+++ trunk/testhal/STM32/multi/DAC/cfg/stm32g474re_nucleo64/chconf.h (revision 13091)
@@ -0,0 +1,734 @@
1+/*
2+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3+
4+ Licensed under the Apache License, Version 2.0 (the "License");
5+ you may not use this file except in compliance with the License.
6+ You may obtain a copy of the License at
7+
8+ http://www.apache.org/licenses/LICENSE-2.0
9+
10+ Unless required by applicable law or agreed to in writing, software
11+ distributed under the License is distributed on an "AS IS" BASIS,
12+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+ See the License for the specific language governing permissions and
14+ limitations under the License.
15+*/
16+
17+/**
18+ * @file rt/templates/chconf.h
19+ * @brief Configuration file template.
20+ * @details A copy of this file must be placed in each project directory, it
21+ * contains the application specific kernel settings.
22+ *
23+ * @addtogroup config
24+ * @details Kernel related settings and hooks.
25+ * @{
26+ */
27+
28+#ifndef CHCONF_H
29+#define CHCONF_H
30+
31+#define _CHIBIOS_RT_CONF_
32+#define _CHIBIOS_RT_CONF_VER_6_1_
33+
34+/*===========================================================================*/
35+/**
36+ * @name System timers settings
37+ * @{
38+ */
39+/*===========================================================================*/
40+
41+/**
42+ * @brief System time counter resolution.
43+ * @note Allowed values are 16 or 32 bits.
44+ */
45+#if !defined(CH_CFG_ST_RESOLUTION)
46+#define CH_CFG_ST_RESOLUTION 32
47+#endif
48+
49+/**
50+ * @brief System tick frequency.
51+ * @details Frequency of the system timer that drives the system ticks. This
52+ * setting also defines the system tick time unit.
53+ */
54+#if !defined(CH_CFG_ST_FREQUENCY)
55+#define CH_CFG_ST_FREQUENCY 10000
56+#endif
57+
58+/**
59+ * @brief Time intervals data size.
60+ * @note Allowed values are 16, 32 or 64 bits.
61+ */
62+#if !defined(CH_CFG_INTERVALS_SIZE)
63+#define CH_CFG_INTERVALS_SIZE 32
64+#endif
65+
66+/**
67+ * @brief Time types data size.
68+ * @note Allowed values are 16 or 32 bits.
69+ */
70+#if !defined(CH_CFG_TIME_TYPES_SIZE)
71+#define CH_CFG_TIME_TYPES_SIZE 32
72+#endif
73+
74+/**
75+ * @brief Time delta constant for the tick-less mode.
76+ * @note If this value is zero then the system uses the classic
77+ * periodic tick. This value represents the minimum number
78+ * of ticks that is safe to specify in a timeout directive.
79+ * The value one is not valid, timeouts are rounded up to
80+ * this value.
81+ */
82+#if !defined(CH_CFG_ST_TIMEDELTA)
83+#define CH_CFG_ST_TIMEDELTA 2
84+#endif
85+
86+/** @} */
87+
88+/*===========================================================================*/
89+/**
90+ * @name Kernel parameters and options
91+ * @{
92+ */
93+/*===========================================================================*/
94+
95+/**
96+ * @brief Round robin interval.
97+ * @details This constant is the number of system ticks allowed for the
98+ * threads before preemption occurs. Setting this value to zero
99+ * disables the preemption for threads with equal priority and the
100+ * round robin becomes cooperative. Note that higher priority
101+ * threads can still preempt, the kernel is always preemptive.
102+ * @note Disabling the round robin preemption makes the kernel more compact
103+ * and generally faster.
104+ * @note The round robin preemption is not supported in tickless mode and
105+ * must be set to zero in that case.
106+ */
107+#if !defined(CH_CFG_TIME_QUANTUM)
108+#define CH_CFG_TIME_QUANTUM 0
109+#endif
110+
111+/**
112+ * @brief Idle thread automatic spawn suppression.
113+ * @details When this option is activated the function @p chSysInit()
114+ * does not spawn the idle thread. The application @p main()
115+ * function becomes the idle thread and must implement an
116+ * infinite loop.
117+ */
118+#if !defined(CH_CFG_NO_IDLE_THREAD)
119+#define CH_CFG_NO_IDLE_THREAD FALSE
120+#endif
121+
122+/** @} */
123+
124+/*===========================================================================*/
125+/**
126+ * @name Performance options
127+ * @{
128+ */
129+/*===========================================================================*/
130+
131+/**
132+ * @brief OS optimization.
133+ * @details If enabled then time efficient rather than space efficient code
134+ * is used when two possible implementations exist.
135+ *
136+ * @note This is not related to the compiler optimization options.
137+ * @note The default is @p TRUE.
138+ */
139+#if !defined(CH_CFG_OPTIMIZE_SPEED)
140+#define CH_CFG_OPTIMIZE_SPEED TRUE
141+#endif
142+
143+/** @} */
144+
145+/*===========================================================================*/
146+/**
147+ * @name Subsystem options
148+ * @{
149+ */
150+/*===========================================================================*/
151+
152+/**
153+ * @brief Time Measurement APIs.
154+ * @details If enabled then the time measurement APIs are included in
155+ * the kernel.
156+ *
157+ * @note The default is @p TRUE.
158+ */
159+#if !defined(CH_CFG_USE_TM)
160+#define CH_CFG_USE_TM FALSE
161+#endif
162+
163+/**
164+ * @brief Threads registry APIs.
165+ * @details If enabled then the registry APIs are included in the kernel.
166+ *
167+ * @note The default is @p TRUE.
168+ */
169+#if !defined(CH_CFG_USE_REGISTRY)
170+#define CH_CFG_USE_REGISTRY TRUE
171+#endif
172+
173+/**
174+ * @brief Threads synchronization APIs.
175+ * @details If enabled then the @p chThdWait() function is included in
176+ * the kernel.
177+ *
178+ * @note The default is @p TRUE.
179+ */
180+#if !defined(CH_CFG_USE_WAITEXIT)
181+#define CH_CFG_USE_WAITEXIT TRUE
182+#endif
183+
184+/**
185+ * @brief Semaphores APIs.
186+ * @details If enabled then the Semaphores APIs are included in the kernel.
187+ *
188+ * @note The default is @p TRUE.
189+ */
190+#if !defined(CH_CFG_USE_SEMAPHORES)
191+#define CH_CFG_USE_SEMAPHORES TRUE
192+#endif
193+
194+/**
195+ * @brief Semaphores queuing mode.
196+ * @details If enabled then the threads are enqueued on semaphores by
197+ * priority rather than in FIFO order.
198+ *
199+ * @note The default is @p FALSE. Enable this if you have special
200+ * requirements.
201+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
202+ */
203+#if !defined(CH_CFG_USE_SEMAPHORES_PRIORITY)
204+#define CH_CFG_USE_SEMAPHORES_PRIORITY FALSE
205+#endif
206+
207+/**
208+ * @brief Mutexes APIs.
209+ * @details If enabled then the mutexes APIs are included in the kernel.
210+ *
211+ * @note The default is @p TRUE.
212+ */
213+#if !defined(CH_CFG_USE_MUTEXES)
214+#define CH_CFG_USE_MUTEXES TRUE
215+#endif
216+
217+/**
218+ * @brief Enables recursive behavior on mutexes.
219+ * @note Recursive mutexes are heavier and have an increased
220+ * memory footprint.
221+ *
222+ * @note The default is @p FALSE.
223+ * @note Requires @p CH_CFG_USE_MUTEXES.
224+ */
225+#if !defined(CH_CFG_USE_MUTEXES_RECURSIVE)
226+#define CH_CFG_USE_MUTEXES_RECURSIVE FALSE
227+#endif
228+
229+/**
230+ * @brief Conditional Variables APIs.
231+ * @details If enabled then the conditional variables APIs are included
232+ * in the kernel.
233+ *
234+ * @note The default is @p TRUE.
235+ * @note Requires @p CH_CFG_USE_MUTEXES.
236+ */
237+#if !defined(CH_CFG_USE_CONDVARS)
238+#define CH_CFG_USE_CONDVARS TRUE
239+#endif
240+
241+/**
242+ * @brief Conditional Variables APIs with timeout.
243+ * @details If enabled then the conditional variables APIs with timeout
244+ * specification are included in the kernel.
245+ *
246+ * @note The default is @p TRUE.
247+ * @note Requires @p CH_CFG_USE_CONDVARS.
248+ */
249+#if !defined(CH_CFG_USE_CONDVARS_TIMEOUT)
250+#define CH_CFG_USE_CONDVARS_TIMEOUT TRUE
251+#endif
252+
253+/**
254+ * @brief Events Flags APIs.
255+ * @details If enabled then the event flags APIs are included in the kernel.
256+ *
257+ * @note The default is @p TRUE.
258+ */
259+#if !defined(CH_CFG_USE_EVENTS)
260+#define CH_CFG_USE_EVENTS TRUE
261+#endif
262+
263+/**
264+ * @brief Events Flags APIs with timeout.
265+ * @details If enabled then the events APIs with timeout specification
266+ * are included in the kernel.
267+ *
268+ * @note The default is @p TRUE.
269+ * @note Requires @p CH_CFG_USE_EVENTS.
270+ */
271+#if !defined(CH_CFG_USE_EVENTS_TIMEOUT)
272+#define CH_CFG_USE_EVENTS_TIMEOUT TRUE
273+#endif
274+
275+/**
276+ * @brief Synchronous Messages APIs.
277+ * @details If enabled then the synchronous messages APIs are included
278+ * in the kernel.
279+ *
280+ * @note The default is @p TRUE.
281+ */
282+#if !defined(CH_CFG_USE_MESSAGES)
283+#define CH_CFG_USE_MESSAGES TRUE
284+#endif
285+
286+/**
287+ * @brief Synchronous Messages queuing mode.
288+ * @details If enabled then messages are served by priority rather than in
289+ * FIFO order.
290+ *
291+ * @note The default is @p FALSE. Enable this if you have special
292+ * requirements.
293+ * @note Requires @p CH_CFG_USE_MESSAGES.
294+ */
295+#if !defined(CH_CFG_USE_MESSAGES_PRIORITY)
296+#define CH_CFG_USE_MESSAGES_PRIORITY FALSE
297+#endif
298+
299+/**
300+ * @brief Dynamic Threads APIs.
301+ * @details If enabled then the dynamic threads creation APIs are included
302+ * in the kernel.
303+ *
304+ * @note The default is @p TRUE.
305+ * @note Requires @p CH_CFG_USE_WAITEXIT.
306+ * @note Requires @p CH_CFG_USE_HEAP and/or @p CH_CFG_USE_MEMPOOLS.
307+ */
308+#if !defined(CH_CFG_USE_DYNAMIC)
309+#define CH_CFG_USE_DYNAMIC TRUE
310+#endif
311+
312+/** @} */
313+
314+/*===========================================================================*/
315+/**
316+ * @name OSLIB options
317+ * @{
318+ */
319+/*===========================================================================*/
320+
321+/**
322+ * @brief Mailboxes APIs.
323+ * @details If enabled then the asynchronous messages (mailboxes) APIs are
324+ * included in the kernel.
325+ *
326+ * @note The default is @p TRUE.
327+ * @note Requires @p CH_CFG_USE_SEMAPHORES.
328+ */
329+#if !defined(CH_CFG_USE_MAILBOXES)
330+#define CH_CFG_USE_MAILBOXES TRUE
331+#endif
332+
333+/**
334+ * @brief Core Memory Manager APIs.
335+ * @details If enabled then the core memory manager APIs are included
336+ * in the kernel.
337+ *
338+ * @note The default is @p TRUE.
339+ */
340+#if !defined(CH_CFG_USE_MEMCORE)
341+#define CH_CFG_USE_MEMCORE TRUE
342+#endif
343+
344+/**
345+ * @brief Managed RAM size.
346+ * @details Size of the RAM area to be managed by the OS. If set to zero
347+ * then the whole available RAM is used. The core memory is made
348+ * available to the heap allocator and/or can be used directly through
349+ * the simplified core memory allocator.
350+ *
351+ * @note In order to let the OS manage the whole RAM the linker script must
352+ * provide the @p __heap_base__ and @p __heap_end__ symbols.
353+ * @note Requires @p CH_CFG_USE_MEMCORE.
354+ */
355+#if !defined(CH_CFG_MEMCORE_SIZE)
356+#define CH_CFG_MEMCORE_SIZE 0
357+#endif
358+
359+/**
360+ * @brief Heap Allocator APIs.
361+ * @details If enabled then the memory heap allocator APIs are included
362+ * in the kernel.
363+ *
364+ * @note The default is @p TRUE.
365+ * @note Requires @p CH_CFG_USE_MEMCORE and either @p CH_CFG_USE_MUTEXES or
366+ * @p CH_CFG_USE_SEMAPHORES.
367+ * @note Mutexes are recommended.
368+ */
369+#if !defined(CH_CFG_USE_HEAP)
370+#define CH_CFG_USE_HEAP TRUE
371+#endif
372+
373+/**
374+ * @brief Memory Pools Allocator APIs.
375+ * @details If enabled then the memory pools allocator APIs are included
376+ * in the kernel.
377+ *
378+ * @note The default is @p TRUE.
379+ */
380+#if !defined(CH_CFG_USE_MEMPOOLS)
381+#define CH_CFG_USE_MEMPOOLS TRUE
382+#endif
383+
384+/**
385+ * @brief Objects FIFOs APIs.
386+ * @details If enabled then the objects FIFOs APIs are included
387+ * in the kernel.
388+ *
389+ * @note The default is @p TRUE.
390+ */
391+#if !defined(CH_CFG_USE_OBJ_FIFOS)
392+#define CH_CFG_USE_OBJ_FIFOS TRUE
393+#endif
394+
395+/**
396+ * @brief Pipes APIs.
397+ * @details If enabled then the pipes APIs are included
398+ * in the kernel.
399+ *
400+ * @note The default is @p TRUE.
401+ */
402+#if !defined(CH_CFG_USE_PIPES)
403+#define CH_CFG_USE_PIPES TRUE
404+#endif
405+
406+/**
407+ * @brief Objects Caches APIs.
408+ * @details If enabled then the objects caches APIs are included
409+ * in the kernel.
410+ *
411+ * @note The default is @p TRUE.
412+ */
413+#if !defined(CH_CFG_USE_OBJ_CACHES)
414+#define CH_CFG_USE_OBJ_CACHES TRUE
415+#endif
416+
417+/** @} */
418+
419+/*===========================================================================*/
420+/**
421+ * @name Objects factory options
422+ * @{
423+ */
424+/*===========================================================================*/
425+
426+/**
427+ * @brief Objects Factory APIs.
428+ * @details If enabled then the objects factory APIs are included in the
429+ * kernel.
430+ *
431+ * @note The default is @p FALSE.
432+ */
433+#if !defined(CH_CFG_USE_FACTORY)
434+#define CH_CFG_USE_FACTORY TRUE
435+#endif
436+
437+/**
438+ * @brief Maximum length for object names.
439+ * @details If the specified length is zero then the name is stored by
440+ * pointer but this could have unintended side effects.
441+ */
442+#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH)
443+#define CH_CFG_FACTORY_MAX_NAMES_LENGTH 8
444+#endif
445+
446+/**
447+ * @brief Enables the registry of generic objects.
448+ */
449+#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY)
450+#define CH_CFG_FACTORY_OBJECTS_REGISTRY TRUE
451+#endif
452+
453+/**
454+ * @brief Enables factory for generic buffers.
455+ */
456+#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS)
457+#define CH_CFG_FACTORY_GENERIC_BUFFERS TRUE
458+#endif
459+
460+/**
461+ * @brief Enables factory for semaphores.
462+ */
463+#if !defined(CH_CFG_FACTORY_SEMAPHORES)
464+#define CH_CFG_FACTORY_SEMAPHORES TRUE
465+#endif
466+
467+/**
468+ * @brief Enables factory for mailboxes.
469+ */
470+#if !defined(CH_CFG_FACTORY_MAILBOXES)
471+#define CH_CFG_FACTORY_MAILBOXES TRUE
472+#endif
473+
474+/**
475+ * @brief Enables factory for objects FIFOs.
476+ */
477+#if !defined(CH_CFG_FACTORY_OBJ_FIFOS)
478+#define CH_CFG_FACTORY_OBJ_FIFOS TRUE
479+#endif
480+
481+/**
482+ * @brief Enables factory for Pipes.
483+ */
484+#if !defined(CH_CFG_FACTORY_PIPES) || defined(__DOXYGEN__)
485+#define CH_CFG_FACTORY_PIPES TRUE
486+#endif
487+
488+/** @} */
489+
490+/*===========================================================================*/
491+/**
492+ * @name Debug options
493+ * @{
494+ */
495+/*===========================================================================*/
496+
497+/**
498+ * @brief Debug option, kernel statistics.
499+ *
500+ * @note The default is @p FALSE.
501+ */
502+#if !defined(CH_DBG_STATISTICS)
503+#define CH_DBG_STATISTICS FALSE
504+#endif
505+
506+/**
507+ * @brief Debug option, system state check.
508+ * @details If enabled the correct call protocol for system APIs is checked
509+ * at runtime.
510+ *
511+ * @note The default is @p FALSE.
512+ */
513+#if !defined(CH_DBG_SYSTEM_STATE_CHECK)
514+#define CH_DBG_SYSTEM_STATE_CHECK FALSE
515+#endif
516+
517+/**
518+ * @brief Debug option, parameters checks.
519+ * @details If enabled then the checks on the API functions input
520+ * parameters are activated.
521+ *
522+ * @note The default is @p FALSE.
523+ */
524+#if !defined(CH_DBG_ENABLE_CHECKS)
525+#define CH_DBG_ENABLE_CHECKS FALSE
526+#endif
527+
528+/**
529+ * @brief Debug option, consistency checks.
530+ * @details If enabled then all the assertions in the kernel code are
531+ * activated. This includes consistency checks inside the kernel,
532+ * runtime anomalies and port-defined checks.
533+ *
534+ * @note The default is @p FALSE.
535+ */
536+#if !defined(CH_DBG_ENABLE_ASSERTS)
537+#define CH_DBG_ENABLE_ASSERTS FALSE
538+#endif
539+
540+/**
541+ * @brief Debug option, trace buffer.
542+ * @details If enabled then the trace buffer is activated.
543+ *
544+ * @note The default is @p CH_DBG_TRACE_MASK_DISABLED.
545+ */
546+#if !defined(CH_DBG_TRACE_MASK)
547+#define CH_DBG_TRACE_MASK CH_DBG_TRACE_MASK_DISABLED
548+#endif
549+
550+/**
551+ * @brief Trace buffer entries.
552+ * @note The trace buffer is only allocated if @p CH_DBG_TRACE_MASK is
553+ * different from @p CH_DBG_TRACE_MASK_DISABLED.
554+ */
555+#if !defined(CH_DBG_TRACE_BUFFER_SIZE)
556+#define CH_DBG_TRACE_BUFFER_SIZE 128
557+#endif
558+
559+/**
560+ * @brief Debug option, stack checks.
561+ * @details If enabled then a runtime stack check is performed.
562+ *
563+ * @note The default is @p FALSE.
564+ * @note The stack check is performed in a architecture/port dependent way.
565+ * It may not be implemented or some ports.
566+ * @note The default failure mode is to halt the system with the global
567+ * @p panic_msg variable set to @p NULL.
568+ */
569+#if !defined(CH_DBG_ENABLE_STACK_CHECK)
570+#define CH_DBG_ENABLE_STACK_CHECK FALSE
571+#endif
572+
573+/**
574+ * @brief Debug option, stacks initialization.
575+ * @details If enabled then the threads working area is filled with a byte
576+ * value when a thread is created. This can be useful for the
577+ * runtime measurement of the used stack.
578+ *
579+ * @note The default is @p FALSE.
580+ */
581+#if !defined(CH_DBG_FILL_THREADS)
582+#define CH_DBG_FILL_THREADS FALSE
583+#endif
584+
585+/**
586+ * @brief Debug option, threads profiling.
587+ * @details If enabled then a field is added to the @p thread_t structure that
588+ * counts the system ticks occurred while executing the thread.
589+ *
590+ * @note The default is @p FALSE.
591+ * @note This debug option is not currently compatible with the
592+ * tickless mode.
593+ */
594+#if !defined(CH_DBG_THREADS_PROFILING)
595+#define CH_DBG_THREADS_PROFILING FALSE
596+#endif
597+
598+/** @} */
599+
600+/*===========================================================================*/
601+/**
602+ * @name Kernel hooks
603+ * @{
604+ */
605+/*===========================================================================*/
606+
607+/**
608+ * @brief System structure extension.
609+ * @details User fields added to the end of the @p ch_system_t structure.
610+ */
611+#define CH_CFG_SYSTEM_EXTRA_FIELDS \
612+ /* Add threads custom fields here.*/
613+
614+/**
615+ * @brief System initialization hook.
616+ * @details User initialization code added to the @p chSysInit() function
617+ * just before interrupts are enabled globally.
618+ */
619+#define CH_CFG_SYSTEM_INIT_HOOK() { \
620+ /* Add threads initialization code here.*/ \
621+}
622+
623+/**
624+ * @brief Threads descriptor structure extension.
625+ * @details User fields added to the end of the @p thread_t structure.
626+ */
627+#define CH_CFG_THREAD_EXTRA_FIELDS \
628+ /* Add threads custom fields here.*/
629+
630+/**
631+ * @brief Threads initialization hook.
632+ * @details User initialization code added to the @p _thread_init() function.
633+ *
634+ * @note It is invoked from within @p _thread_init() and implicitly from all
635+ * the threads creation APIs.
636+ */
637+#define CH_CFG_THREAD_INIT_HOOK(tp) { \
638+ /* Add threads initialization code here.*/ \
639+}
640+
641+/**
642+ * @brief Threads finalization hook.
643+ * @details User finalization code added to the @p chThdExit() API.
644+ */
645+#define CH_CFG_THREAD_EXIT_HOOK(tp) { \
646+ /* Add threads finalization code here.*/ \
647+}
648+
649+/**
650+ * @brief Context switch hook.
651+ * @details This hook is invoked just before switching between threads.
652+ */
653+#define CH_CFG_CONTEXT_SWITCH_HOOK(ntp, otp) { \
654+ /* Context switch code here.*/ \
655+}
656+
657+/**
658+ * @brief ISR enter hook.
659+ */
660+#define CH_CFG_IRQ_PROLOGUE_HOOK() { \
661+ /* IRQ prologue code here.*/ \
662+}
663+
664+/**
665+ * @brief ISR exit hook.
666+ */
667+#define CH_CFG_IRQ_EPILOGUE_HOOK() { \
668+ /* IRQ epilogue code here.*/ \
669+}
670+
671+/**
672+ * @brief Idle thread enter hook.
673+ * @note This hook is invoked within a critical zone, no OS functions
674+ * should be invoked from here.
675+ * @note This macro can be used to activate a power saving mode.
676+ */
677+#define CH_CFG_IDLE_ENTER_HOOK() { \
678+ /* Idle-enter code here.*/ \
679+}
680+
681+/**
682+ * @brief Idle thread leave hook.
683+ * @note This hook is invoked within a critical zone, no OS functions
684+ * should be invoked from here.
685+ * @note This macro can be used to deactivate a power saving mode.
686+ */
687+#define CH_CFG_IDLE_LEAVE_HOOK() { \
688+ /* Idle-leave code here.*/ \
689+}
690+
691+/**
692+ * @brief Idle Loop hook.
693+ * @details This hook is continuously invoked by the idle thread loop.
694+ */
695+#define CH_CFG_IDLE_LOOP_HOOK() { \
696+ /* Idle loop code here.*/ \
697+}
698+
699+/**
700+ * @brief System tick event hook.
701+ * @details This hook is invoked in the system tick handler immediately
702+ * after processing the virtual timers queue.
703+ */
704+#define CH_CFG_SYSTEM_TICK_HOOK() { \
705+ /* System tick event code here.*/ \
706+}
707+
708+/**
709+ * @brief System halt hook.
710+ * @details This hook is invoked in case to a system halting error before
711+ * the system is halted.
712+ */
713+#define CH_CFG_SYSTEM_HALT_HOOK(reason) { \
714+ /* System halt code here.*/ \
715+}
716+
717+/**
718+ * @brief Trace hook.
719+ * @details This hook is invoked each time a new record is written in the
720+ * trace buffer.
721+ */
722+#define CH_CFG_TRACE_HOOK(tep) { \
723+ /* Trace code here.*/ \
724+}
725+
726+/** @} */
727+
728+/*===========================================================================*/
729+/* Port-specific settings (override port settings defaulted in chcore.h). */
730+/*===========================================================================*/
731+
732+#endif /* CHCONF_H */
733+
734+/** @} */
--- trunk/testhal/STM32/multi/DAC/cfg/stm32g474re_nucleo64/halconf.h (nonexistent)
+++ trunk/testhal/STM32/multi/DAC/cfg/stm32g474re_nucleo64/halconf.h (revision 13091)
@@ -0,0 +1,531 @@
1+/*
2+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3+
4+ Licensed under the Apache License, Version 2.0 (the "License");
5+ you may not use this file except in compliance with the License.
6+ You may obtain a copy of the License at
7+
8+ http://www.apache.org/licenses/LICENSE-2.0
9+
10+ Unless required by applicable law or agreed to in writing, software
11+ distributed under the License is distributed on an "AS IS" BASIS,
12+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+ See the License for the specific language governing permissions and
14+ limitations under the License.
15+*/
16+
17+/**
18+ * @file templates/halconf.h
19+ * @brief HAL configuration header.
20+ * @details HAL configuration file, this file allows to enable or disable the
21+ * various device drivers from your application. You may also use
22+ * this file in order to override the device drivers default settings.
23+ *
24+ * @addtogroup HAL_CONF
25+ * @{
26+ */
27+
28+#ifndef HALCONF_H
29+#define HALCONF_H
30+
31+#define _CHIBIOS_HAL_CONF_
32+#define _CHIBIOS_HAL_CONF_VER_7_1_
33+
34+#include "mcuconf.h"
35+
36+/**
37+ * @brief Enables the PAL subsystem.
38+ */
39+#if !defined(HAL_USE_PAL) || defined(__DOXYGEN__)
40+#define HAL_USE_PAL TRUE
41+#endif
42+
43+/**
44+ * @brief Enables the ADC subsystem.
45+ */
46+#if !defined(HAL_USE_ADC) || defined(__DOXYGEN__)
47+#define HAL_USE_ADC FALSE
48+#endif
49+
50+/**
51+ * @brief Enables the CAN subsystem.
52+ */
53+#if !defined(HAL_USE_CAN) || defined(__DOXYGEN__)
54+#define HAL_USE_CAN FALSE
55+#endif
56+
57+/**
58+ * @brief Enables the cryptographic subsystem.
59+ */
60+#if !defined(HAL_USE_CRY) || defined(__DOXYGEN__)
61+#define HAL_USE_CRY FALSE
62+#endif
63+
64+/**
65+ * @brief Enables the DAC subsystem.
66+ */
67+#if !defined(HAL_USE_DAC) || defined(__DOXYGEN__)
68+#define HAL_USE_DAC TRUE
69+#endif
70+
71+/**
72+ * @brief Enables the EFlash subsystem.
73+ */
74+#if !defined(HAL_USE_EFL) || defined(__DOXYGEN__)
75+#define HAL_USE_EFL FALSE
76+#endif
77+
78+/**
79+ * @brief Enables the GPT subsystem.
80+ */
81+#if !defined(HAL_USE_GPT) || defined(__DOXYGEN__)
82+#define HAL_USE_GPT TRUE
83+#endif
84+
85+/**
86+ * @brief Enables the I2C subsystem.
87+ */
88+#if !defined(HAL_USE_I2C) || defined(__DOXYGEN__)
89+#define HAL_USE_I2C FALSE
90+#endif
91+
92+/**
93+ * @brief Enables the I2S subsystem.
94+ */
95+#if !defined(HAL_USE_I2S) || defined(__DOXYGEN__)
96+#define HAL_USE_I2S FALSE
97+#endif
98+
99+/**
100+ * @brief Enables the ICU subsystem.
101+ */
102+#if !defined(HAL_USE_ICU) || defined(__DOXYGEN__)
103+#define HAL_USE_ICU FALSE
104+#endif
105+
106+/**
107+ * @brief Enables the MAC subsystem.
108+ */
109+#if !defined(HAL_USE_MAC) || defined(__DOXYGEN__)
110+#define HAL_USE_MAC FALSE
111+#endif
112+
113+/**
114+ * @brief Enables the MMC_SPI subsystem.
115+ */
116+#if !defined(HAL_USE_MMC_SPI) || defined(__DOXYGEN__)
117+#define HAL_USE_MMC_SPI FALSE
118+#endif
119+
120+/**
121+ * @brief Enables the PWM subsystem.
122+ */
123+#if !defined(HAL_USE_PWM) || defined(__DOXYGEN__)
124+#define HAL_USE_PWM FALSE
125+#endif
126+
127+/**
128+ * @brief Enables the RTC subsystem.
129+ */
130+#if !defined(HAL_USE_RTC) || defined(__DOXYGEN__)
131+#define HAL_USE_RTC FALSE
132+#endif
133+
134+/**
135+ * @brief Enables the SDC subsystem.
136+ */
137+#if !defined(HAL_USE_SDC) || defined(__DOXYGEN__)
138+#define HAL_USE_SDC FALSE
139+#endif
140+
141+/**
142+ * @brief Enables the SERIAL subsystem.
143+ */
144+#if !defined(HAL_USE_SERIAL) || defined(__DOXYGEN__)
145+#define HAL_USE_SERIAL TRUE
146+#endif
147+
148+/**
149+ * @brief Enables the SERIAL over USB subsystem.
150+ */
151+#if !defined(HAL_USE_SERIAL_USB) || defined(__DOXYGEN__)
152+#define HAL_USE_SERIAL_USB FALSE
153+#endif
154+
155+/**
156+ * @brief Enables the SIO subsystem.
157+ */
158+#if !defined(HAL_USE_SIO) || defined(__DOXYGEN__)
159+#define HAL_USE_SIO FALSE
160+#endif
161+
162+/**
163+ * @brief Enables the SPI subsystem.
164+ */
165+#if !defined(HAL_USE_SPI) || defined(__DOXYGEN__)
166+#define HAL_USE_SPI FALSE
167+#endif
168+
169+/**
170+ * @brief Enables the TRNG subsystem.
171+ */
172+#if !defined(HAL_USE_TRNG) || defined(__DOXYGEN__)
173+#define HAL_USE_TRNG FALSE
174+#endif
175+
176+/**
177+ * @brief Enables the UART subsystem.
178+ */
179+#if !defined(HAL_USE_UART) || defined(__DOXYGEN__)
180+#define HAL_USE_UART FALSE
181+#endif
182+
183+/**
184+ * @brief Enables the USB subsystem.
185+ */
186+#if !defined(HAL_USE_USB) || defined(__DOXYGEN__)
187+#define HAL_USE_USB FALSE
188+#endif
189+
190+/**
191+ * @brief Enables the WDG subsystem.
192+ */
193+#if !defined(HAL_USE_WDG) || defined(__DOXYGEN__)
194+#define HAL_USE_WDG FALSE
195+#endif
196+
197+/**
198+ * @brief Enables the WSPI subsystem.
199+ */
200+#if !defined(HAL_USE_WSPI) || defined(__DOXYGEN__)
201+#define HAL_USE_WSPI FALSE
202+#endif
203+
204+/*===========================================================================*/
205+/* PAL driver related settings. */
206+/*===========================================================================*/
207+
208+/**
209+ * @brief Enables synchronous APIs.
210+ * @note Disabling this option saves both code and data space.
211+ */
212+#if !defined(PAL_USE_CALLBACKS) || defined(__DOXYGEN__)
213+#define PAL_USE_CALLBACKS TRUE
214+#endif
215+
216+/**
217+ * @brief Enables synchronous APIs.
218+ * @note Disabling this option saves both code and data space.
219+ */
220+#if !defined(PAL_USE_WAIT) || defined(__DOXYGEN__)
221+#define PAL_USE_WAIT TRUE
222+#endif
223+
224+/*===========================================================================*/
225+/* ADC driver related settings. */
226+/*===========================================================================*/
227+
228+/**
229+ * @brief Enables synchronous APIs.
230+ * @note Disabling this option saves both code and data space.
231+ */
232+#if !defined(ADC_USE_WAIT) || defined(__DOXYGEN__)
233+#define ADC_USE_WAIT TRUE
234+#endif
235+
236+/**
237+ * @brief Enables the @p adcAcquireBus() and @p adcReleaseBus() APIs.
238+ * @note Disabling this option saves both code and data space.
239+ */
240+#if !defined(ADC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
241+#define ADC_USE_MUTUAL_EXCLUSION TRUE
242+#endif
243+
244+/*===========================================================================*/
245+/* CAN driver related settings. */
246+/*===========================================================================*/
247+
248+/**
249+ * @brief Sleep mode related APIs inclusion switch.
250+ */
251+#if !defined(CAN_USE_SLEEP_MODE) || defined(__DOXYGEN__)
252+#define CAN_USE_SLEEP_MODE TRUE
253+#endif
254+
255+/**
256+ * @brief Enforces the driver to use direct callbacks rather than OSAL events.
257+ */
258+#if !defined(CAN_ENFORCE_USE_CALLBACKS) || defined(__DOXYGEN__)
259+#define CAN_ENFORCE_USE_CALLBACKS FALSE
260+#endif
261+
262+/*===========================================================================*/
263+/* CRY driver related settings. */
264+/*===========================================================================*/
265+
266+/**
267+ * @brief Enables the SW fall-back of the cryptographic driver.
268+ * @details When enabled, this option, activates a fall-back software
269+ * implementation for algorithms not supported by the underlying
270+ * hardware.
271+ * @note Fall-back implementations may not be present for all algorithms.
272+ */
273+#if !defined(HAL_CRY_USE_FALLBACK) || defined(__DOXYGEN__)
274+#define HAL_CRY_USE_FALLBACK FALSE
275+#endif
276+
277+/**
278+ * @brief Makes the driver forcibly use the fall-back implementations.
279+ */
280+#if !defined(HAL_CRY_ENFORCE_FALLBACK) || defined(__DOXYGEN__)
281+#define HAL_CRY_ENFORCE_FALLBACK FALSE
282+#endif
283+
284+/*===========================================================================*/
285+/* DAC driver related settings. */
286+/*===========================================================================*/
287+
288+/**
289+ * @brief Enables synchronous APIs.
290+ * @note Disabling this option saves both code and data space.
291+ */
292+#if !defined(DAC_USE_WAIT) || defined(__DOXYGEN__)
293+#define DAC_USE_WAIT TRUE
294+#endif
295+
296+/**
297+ * @brief Enables the @p dacAcquireBus() and @p dacReleaseBus() APIs.
298+ * @note Disabling this option saves both code and data space.
299+ */
300+#if !defined(DAC_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
301+#define DAC_USE_MUTUAL_EXCLUSION TRUE
302+#endif
303+
304+/*===========================================================================*/
305+/* I2C driver related settings. */
306+/*===========================================================================*/
307+
308+/**
309+ * @brief Enables the mutual exclusion APIs on the I2C bus.
310+ */
311+#if !defined(I2C_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
312+#define I2C_USE_MUTUAL_EXCLUSION TRUE
313+#endif
314+
315+/*===========================================================================*/
316+/* MAC driver related settings. */
317+/*===========================================================================*/
318+
319+/**
320+ * @brief Enables the zero-copy API.
321+ */
322+#if !defined(MAC_USE_ZERO_COPY) || defined(__DOXYGEN__)
323+#define MAC_USE_ZERO_COPY FALSE
324+#endif
325+
326+/**
327+ * @brief Enables an event sources for incoming packets.
328+ */
329+#if !defined(MAC_USE_EVENTS) || defined(__DOXYGEN__)
330+#define MAC_USE_EVENTS TRUE
331+#endif
332+
333+/*===========================================================================*/
334+/* MMC_SPI driver related settings. */
335+/*===========================================================================*/
336+
337+/**
338+ * @brief Delays insertions.
339+ * @details If enabled this options inserts delays into the MMC waiting
340+ * routines releasing some extra CPU time for the threads with
341+ * lower priority, this may slow down the driver a bit however.
342+ * This option is recommended also if the SPI driver does not
343+ * use a DMA channel and heavily loads the CPU.
344+ */
345+#if !defined(MMC_NICE_WAITING) || defined(__DOXYGEN__)
346+#define MMC_NICE_WAITING TRUE
347+#endif
348+
349+/*===========================================================================*/
350+/* SDC driver related settings. */
351+/*===========================================================================*/
352+
353+/**
354+ * @brief Number of initialization attempts before rejecting the card.
355+ * @note Attempts are performed at 10mS intervals.
356+ */
357+#if !defined(SDC_INIT_RETRY) || defined(__DOXYGEN__)
358+#define SDC_INIT_RETRY 100
359+#endif
360+
361+/**
362+ * @brief Include support for MMC cards.
363+ * @note MMC support is not yet implemented so this option must be kept
364+ * at @p FALSE.
365+ */
366+#if !defined(SDC_MMC_SUPPORT) || defined(__DOXYGEN__)
367+#define SDC_MMC_SUPPORT FALSE
368+#endif
369+
370+/**
371+ * @brief Delays insertions.
372+ * @details If enabled this options inserts delays into the MMC waiting
373+ * routines releasing some extra CPU time for the threads with
374+ * lower priority, this may slow down the driver a bit however.
375+ */
376+#if !defined(SDC_NICE_WAITING) || defined(__DOXYGEN__)
377+#define SDC_NICE_WAITING TRUE
378+#endif
379+
380+/**
381+ * @brief OCR initialization constant for V20 cards.
382+ */
383+#if !defined(SDC_INIT_OCR_V20) || defined(__DOXYGEN__)
384+#define SDC_INIT_OCR_V20 0x50FF8000U
385+#endif
386+
387+/**
388+ * @brief OCR initialization constant for non-V20 cards.
389+ */
390+#if !defined(SDC_INIT_OCR) || defined(__DOXYGEN__)
391+#define SDC_INIT_OCR 0x80100000U
392+#endif
393+
394+/*===========================================================================*/
395+/* SERIAL driver related settings. */
396+/*===========================================================================*/
397+
398+/**
399+ * @brief Default bit rate.
400+ * @details Configuration parameter, this is the baud rate selected for the
401+ * default configuration.
402+ */
403+#if !defined(SERIAL_DEFAULT_BITRATE) || defined(__DOXYGEN__)
404+#define SERIAL_DEFAULT_BITRATE 38400
405+#endif
406+
407+/**
408+ * @brief Serial buffers size.
409+ * @details Configuration parameter, you can change the depth of the queue
410+ * buffers depending on the requirements of your application.
411+ * @note The default is 16 bytes for both the transmission and receive
412+ * buffers.
413+ */
414+#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__)
415+#define SERIAL_BUFFERS_SIZE 16
416+#endif
417+
418+/*===========================================================================*/
419+/* SERIAL_USB driver related setting. */
420+/*===========================================================================*/
421+
422+/**
423+ * @brief Serial over USB buffers size.
424+ * @details Configuration parameter, the buffer size must be a multiple of
425+ * the USB data endpoint maximum packet size.
426+ * @note The default is 256 bytes for both the transmission and receive
427+ * buffers.
428+ */
429+#if !defined(SERIAL_USB_BUFFERS_SIZE) || defined(__DOXYGEN__)
430+#define SERIAL_USB_BUFFERS_SIZE 256
431+#endif
432+
433+/**
434+ * @brief Serial over USB number of buffers.
435+ * @note The default is 2 buffers.
436+ */
437+#if !defined(SERIAL_USB_BUFFERS_NUMBER) || defined(__DOXYGEN__)
438+#define SERIAL_USB_BUFFERS_NUMBER 2
439+#endif
440+
441+/*===========================================================================*/
442+/* SPI driver related settings. */
443+/*===========================================================================*/
444+
445+/**
446+ * @brief Enables synchronous APIs.
447+ * @note Disabling this option saves both code and data space.
448+ */
449+#if !defined(SPI_USE_WAIT) || defined(__DOXYGEN__)
450+#define SPI_USE_WAIT TRUE
451+#endif
452+
453+/**
454+ * @brief Enables circular transfers APIs.
455+ * @note Disabling this option saves both code and data space.
456+ */
457+#if !defined(SPI_USE_CIRCULAR) || defined(__DOXYGEN__)
458+#define SPI_USE_CIRCULAR FALSE
459+#endif
460+
461+/**
462+ * @brief Enables the @p spiAcquireBus() and @p spiReleaseBus() APIs.
463+ * @note Disabling this option saves both code and data space.
464+ */
465+#if !defined(SPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
466+#define SPI_USE_MUTUAL_EXCLUSION TRUE
467+#endif
468+
469+/**
470+ * @brief Handling method for SPI CS line.
471+ * @note Disabling this option saves both code and data space.
472+ */
473+#if !defined(SPI_SELECT_MODE) || defined(__DOXYGEN__)
474+#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
475+#endif
476+
477+/*===========================================================================*/
478+/* UART driver related settings. */
479+/*===========================================================================*/
480+
481+/**
482+ * @brief Enables synchronous APIs.
483+ * @note Disabling this option saves both code and data space.
484+ */
485+#if !defined(UART_USE_WAIT) || defined(__DOXYGEN__)
486+#define UART_USE_WAIT FALSE
487+#endif
488+
489+/**
490+ * @brief Enables the @p uartAcquireBus() and @p uartReleaseBus() APIs.
491+ * @note Disabling this option saves both code and data space.
492+ */
493+#if !defined(UART_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
494+#define UART_USE_MUTUAL_EXCLUSION FALSE
495+#endif
496+
497+/*===========================================================================*/
498+/* USB driver related settings. */
499+/*===========================================================================*/
500+
501+/**
502+ * @brief Enables synchronous APIs.
503+ * @note Disabling this option saves both code and data space.
504+ */
505+#if !defined(USB_USE_WAIT) || defined(__DOXYGEN__)
506+#define USB_USE_WAIT FALSE
507+#endif
508+
509+/*===========================================================================*/
510+/* WSPI driver related settings. */
511+/*===========================================================================*/
512+
513+/**
514+ * @brief Enables synchronous APIs.
515+ * @note Disabling this option saves both code and data space.
516+ */
517+#if !defined(WSPI_USE_WAIT) || defined(__DOXYGEN__)
518+#define WSPI_USE_WAIT TRUE
519+#endif
520+
521+/**
522+ * @brief Enables the @p wspiAcquireBus() and @p wspiReleaseBus() APIs.
523+ * @note Disabling this option saves both code and data space.
524+ */
525+#if !defined(WSPI_USE_MUTUAL_EXCLUSION) || defined(__DOXYGEN__)
526+#define WSPI_USE_MUTUAL_EXCLUSION TRUE
527+#endif
528+
529+#endif /* HALCONF_H */
530+
531+/** @} */
--- trunk/testhal/STM32/multi/DAC/cfg/stm32g474re_nucleo64/mcuconf.h (nonexistent)
+++ trunk/testhal/STM32/multi/DAC/cfg/stm32g474re_nucleo64/mcuconf.h (revision 13091)
@@ -0,0 +1,326 @@
1+/*
2+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3+
4+ Licensed under the Apache License, Version 2.0 (the "License");
5+ you may not use this file except in compliance with the License.
6+ You may obtain a copy of the License at
7+
8+ http://www.apache.org/licenses/LICENSE-2.0
9+
10+ Unless required by applicable law or agreed to in writing, software
11+ distributed under the License is distributed on an "AS IS" BASIS,
12+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+ See the License for the specific language governing permissions and
14+ limitations under the License.
15+*/
16+
17+/*
18+ * STM32G4xx drivers configuration.
19+ * The following settings override the default settings present in
20+ * the various device driver implementation headers.
21+ * Note that the settings for each driver only have effect if the whole
22+ * driver is enabled in halconf.h.
23+ *
24+ * IRQ priorities:
25+ * 15...0 Lowest...Highest.
26+ *
27+ * DMA priorities:
28+ * 0...3 Lowest...Highest.
29+ */
30+
31+#ifndef MCUCONF_H
32+#define MCUCONF_H
33+
34+#define STM32G4xx_MCUCONF
35+#define STM32G473_MCUCONF
36+#define STM32G483_MCUCONF
37+#define STM32G474_MCUCONF
38+#define STM32G484_MCUCONF
39+
40+/*
41+ * HAL driver system settings.
42+ */
43+#define STM32_NO_INIT FALSE
44+#define STM32_VOS STM32_VOS_RANGE1
45+#define STM32_PWR_CR2 (STM32_PLS_LEV0 | STM32_PVDE_DISABLED)
46+#define STM32_HSI16_ENABLED TRUE
47+#define STM32_HSI48_ENABLED TRUE
48+#define STM32_HSE_ENABLED TRUE
49+#define STM32_LSI_ENABLED FALSE
50+#define STM32_LSE_ENABLED TRUE
51+#define STM32_SW STM32_SW_PLLRCLK
52+#define STM32_PLLSRC STM32_PLLSRC_HSE
53+#define STM32_PLLM_VALUE 6
54+#define STM32_PLLN_VALUE 85
55+#define STM32_PLLPDIV_VALUE 0
56+#define STM32_PLLP_VALUE 7
57+#define STM32_PLLQ_VALUE 8
58+#define STM32_PLLR_VALUE 2
59+#define STM32_HPRE STM32_HPRE_DIV1
60+#define STM32_PPRE1 STM32_PPRE1_DIV2
61+#define STM32_PPRE2 STM32_PPRE2_DIV1
62+#define STM32_MCOSEL STM32_MCOSEL_NOCLOCK
63+#define STM32_MCOPRE STM32_MCOPRE_DIV1
64+#define STM32_LSCOSEL STM32_LSCOSEL_NOCLOCK
65+
66+/*
67+ * Peripherals clock sources.
68+ */
69+#define STM32_USART1SEL STM32_USART1SEL_SYSCLK
70+#define STM32_USART2SEL STM32_USART2SEL_SYSCLK
71+#define STM32_USART3SEL STM32_USART3SEL_SYSCLK
72+#define STM32_UART4SEL STM32_UART4SEL_SYSCLK
73+#define STM32_UART5SEL STM32_UART5SEL_SYSCLK
74+#define STM32_LPUART1SEL STM32_LPUART1SEL_PCLK1
75+#define STM32_I2C1SEL STM32_I2C1SEL_PCLK1
76+#define STM32_I2C2SEL STM32_I2C2SEL_PCLK1
77+#define STM32_I2C3SEL STM32_I2C3SEL_PCLK1
78+#define STM32_I2C4SEL STM32_I2C4SEL_PCLK1
79+#define STM32_LPTIM1SEL STM32_LPTIM1SEL_PCLK1
80+#define STM32_SAI1SEL STM32_SAI1SEL_SYSCLK
81+#define STM32_I2S23SEL STM32_I2S23SEL_SYSCLK
82+#define STM32_FDCANSEL STM32_FDCANSEL_HSE
83+#define STM32_CLK48SEL STM32_CLK48SEL_HSI48
84+#define STM32_ADC12SEL STM32_ADC12SEL_PLLPCLK
85+#define STM32_ADC345SEL STM32_ADC345SEL_PLLPCLK
86+#define STM32_QSPISEL STM32_QSPISEL_SYSCLK
87+#define STM32_RTCSEL STM32_RTCSEL_NOCLOCK
88+
89+/*
90+ * IRQ system settings.
91+ */
92+#define STM32_IRQ_EXTI0_PRIORITY 6
93+#define STM32_IRQ_EXTI1_PRIORITY 6
94+#define STM32_IRQ_EXTI2_PRIORITY 6
95+#define STM32_IRQ_EXTI3_PRIORITY 6
96+#define STM32_IRQ_EXTI4_PRIORITY 6
97+#define STM32_IRQ_EXTI5_9_PRIORITY 6
98+#define STM32_IRQ_EXTI10_15_PRIORITY 6
99+
100+#define STM32_IRQ_TIM1_BRK_TIM15_PRIORITY 7
101+#define STM32_IRQ_TIM1_UP_TIM16_PRIORITY 7
102+#define STM32_IRQ_TIM1_TRGCO_TIM17_PRIORITY 7
103+#define STM32_IRQ_TIM1_CC_PRIORITY 7
104+#define STM32_IRQ_TIM2_PRIORITY 7
105+#define STM32_IRQ_TIM3_PRIORITY 7
106+#define STM32_IRQ_TIM4_PRIORITY 7
107+#define STM32_IRQ_TIM5_PRIORITY 7
108+#define STM32_IRQ_TIM6_PRIORITY 7
109+#define STM32_IRQ_TIM7_PRIORITY 7
110+#define STM32_IRQ_TIM8_UP_PRIORITY 7
111+#define STM32_IRQ_TIM8_CC_PRIORITY 7
112+#define STM32_IRQ_TIM20_UP_PRIORITY 7
113+#define STM32_IRQ_TIM20_CC_PRIORITY 7
114+
115+#define STM32_IRQ_USART1_PRIORITY 3
116+#define STM32_IRQ_USART2_PRIORITY 3
117+#define STM32_IRQ_USART3_PRIORITY 3
118+#define STM32_IRQ_UART4_PRIORITY 3
119+#define STM32_IRQ_UART5_PRIORITY 3
120+#define STM32_IRQ_LPUART1_PRIORITY 3
121+
122+/*
123+ * ADC driver system settings.
124+ */
125+
126+/*
127+ * CAN driver system settings.
128+ */
129+
130+/*
131+ * DAC driver system settings.
132+ */
133+#define STM32_DAC_DUAL_MODE FALSE
134+#define STM32_DAC_USE_DAC1_CH1 TRUE
135+#define STM32_DAC_USE_DAC1_CH2 TRUE
136+#define STM32_DAC_USE_DAC2_CH1 TRUE
137+#define STM32_DAC_USE_DAC3_CH1 TRUE
138+#define STM32_DAC_USE_DAC3_CH2 TRUE
139+#define STM32_DAC_USE_DAC4_CH1 TRUE
140+#define STM32_DAC_USE_DAC4_CH2 TRUE
141+#define STM32_DAC_DAC1_CH1_IRQ_PRIORITY 10
142+#define STM32_DAC_DAC1_CH2_IRQ_PRIORITY 10
143+#define STM32_DAC_DAC2_CH1_IRQ_PRIORITY 10
144+#define STM32_DAC_DAC3_CH1_IRQ_PRIORITY 10
145+#define STM32_DAC_DAC3_CH2_IRQ_PRIORITY 10
146+#define STM32_DAC_DAC4_CH1_IRQ_PRIORITY 10
147+#define STM32_DAC_DAC4_CH2_IRQ_PRIORITY 10
148+#define STM32_DAC_DAC1_CH1_DMA_PRIORITY 2
149+#define STM32_DAC_DAC1_CH2_DMA_PRIORITY 2
150+#define STM32_DAC_DAC2_CH1_DMA_PRIORITY 2
151+#define STM32_DAC_DAC3_CH1_DMA_PRIORITY 2
152+#define STM32_DAC_DAC3_CH2_DMA_PRIORITY 2
153+#define STM32_DAC_DAC4_CH1_DMA_PRIORITY 2
154+#define STM32_DAC_DAC4_CH2_DMA_PRIORITY 2
155+#define STM32_DAC_DAC1_CH1_DMA_STREAM STM32_DMA_STREAM_ID_ANY
156+#define STM32_DAC_DAC1_CH2_DMA_STREAM STM32_DMA_STREAM_ID_ANY
157+#define STM32_DAC_DAC2_CH1_DMA_STREAM STM32_DMA_STREAM_ID_ANY
158+#define STM32_DAC_DAC3_CH1_DMA_STREAM STM32_DMA_STREAM_ID_ANY
159+#define STM32_DAC_DAC3_CH2_DMA_STREAM STM32_DMA_STREAM_ID_ANY
160+#define STM32_DAC_DAC4_CH1_DMA_STREAM STM32_DMA_STREAM_ID_ANY
161+#define STM32_DAC_DAC4_CH2_DMA_STREAM STM32_DMA_STREAM_ID_ANY
162+
163+/*
164+ * GPT driver system settings.
165+ */
166+#define STM32_GPT_USE_TIM1 FALSE
167+#define STM32_GPT_USE_TIM2 FALSE
168+#define STM32_GPT_USE_TIM3 FALSE
169+#define STM32_GPT_USE_TIM4 FALSE
170+#define STM32_GPT_USE_TIM5 FALSE
171+#define STM32_GPT_USE_TIM6 TRUE
172+#define STM32_GPT_USE_TIM7 FALSE
173+#define STM32_GPT_USE_TIM8 FALSE
174+#define STM32_GPT_USE_TIM15 FALSE
175+#define STM32_GPT_USE_TIM16 FALSE
176+#define STM32_GPT_USE_TIM17 FALSE
177+
178+/*
179+ * I2C driver system settings.
180+ */
181+#define STM32_I2C_USE_I2C1 FALSE
182+#define STM32_I2C_USE_I2C2 FALSE
183+#define STM32_I2C_USE_I2C3 FALSE
184+#define STM32_I2C_USE_I2C4 FALSE
185+#define STM32_I2C_BUSY_TIMEOUT 50
186+#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
187+#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
188+#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
189+#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
190+#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
191+#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
192+#define STM32_I2C_I2C4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
193+#define STM32_I2C_I2C4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
194+#define STM32_I2C_I2C1_IRQ_PRIORITY 5
195+#define STM32_I2C_I2C2_IRQ_PRIORITY 5
196+#define STM32_I2C_I2C3_IRQ_PRIORITY 5
197+#define STM32_I2C_I2C4_IRQ_PRIORITY 5
198+#define STM32_I2C_I2C1_DMA_PRIORITY 3
199+#define STM32_I2C_I2C2_DMA_PRIORITY 3
200+#define STM32_I2C_I2C3_DMA_PRIORITY 3
201+#define STM32_I2C_I2C4_DMA_PRIORITY 3
202+#define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure")
203+
204+/*
205+ * ICU driver system settings.
206+ */
207+#define STM32_ICU_USE_TIM1 FALSE
208+#define STM32_ICU_USE_TIM2 FALSE
209+#define STM32_ICU_USE_TIM3 FALSE
210+#define STM32_ICU_USE_TIM4 FALSE
211+#define STM32_ICU_USE_TIM5 FALSE
212+#define STM32_ICU_USE_TIM8 FALSE
213+#define STM32_ICU_USE_TIM15 FALSE
214+
215+/*
216+ * PWM driver system settings.
217+ */
218+#define STM32_PWM_USE_ADVANCED FALSE
219+#define STM32_PWM_USE_TIM1 FALSE
220+#define STM32_PWM_USE_TIM2 FALSE
221+#define STM32_PWM_USE_TIM3 FALSE
222+#define STM32_PWM_USE_TIM4 FALSE
223+#define STM32_PWM_USE_TIM5 FALSE
224+#define STM32_PWM_USE_TIM8 FALSE
225+#define STM32_PWM_USE_TIM15 FALSE
226+#define STM32_PWM_USE_TIM16 FALSE
227+#define STM32_PWM_USE_TIM17 FALSE
228+
229+/*
230+ * RTC driver system settings.
231+ */
232+
233+/*
234+ * SDC driver system settings.
235+ */
236+
237+/*
238+ * SERIAL driver system settings.
239+ */
240+#define STM32_SERIAL_USE_USART1 FALSE
241+#define STM32_SERIAL_USE_USART2 FALSE
242+#define STM32_SERIAL_USE_USART3 FALSE
243+#define STM32_SERIAL_USE_UART4 FALSE
244+#define STM32_SERIAL_USE_UART5 FALSE
245+#define STM32_SERIAL_USE_LPUART1 TRUE
246+
247+/*
248+ * SPI driver system settings.
249+ */
250+#define STM32_SPI_USE_SPI1 FALSE
251+#define STM32_SPI_USE_SPI2 FALSE
252+#define STM32_SPI_USE_SPI3 FALSE
253+#define STM32_SPI_USE_SPI4 FALSE
254+#define STM32_SPI_SPI1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
255+#define STM32_SPI_SPI1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
256+#define STM32_SPI_SPI2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
257+#define STM32_SPI_SPI2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
258+#define STM32_SPI_SPI3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
259+#define STM32_SPI_SPI3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
260+#define STM32_SPI_SPI4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
261+#define STM32_SPI_SPI4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
262+#define STM32_SPI_SPI1_DMA_PRIORITY 1
263+#define STM32_SPI_SPI2_DMA_PRIORITY 1
264+#define STM32_SPI_SPI3_DMA_PRIORITY 1
265+#define STM32_SPI_SPI4_DMA_PRIORITY 1
266+#define STM32_SPI_SPI1_IRQ_PRIORITY 10
267+#define STM32_SPI_SPI2_IRQ_PRIORITY 10
268+#define STM32_SPI_SPI3_IRQ_PRIORITY 10
269+#define STM32_SPI_SPI4_IRQ_PRIORITY 10
270+#define STM32_SPI_DMA_ERROR_HOOK(spip) osalSysHalt("DMA failure")
271+
272+/*
273+ * ST driver system settings.
274+ */
275+#define STM32_ST_IRQ_PRIORITY 8
276+#define STM32_ST_USE_TIMER 2
277+
278+/*
279+ * TRNG driver system settings.
280+ */
281+
282+/*
283+ * UART driver system settings.
284+ */
285+#define STM32_UART_USE_USART1 FALSE
286+#define STM32_UART_USE_USART2 FALSE
287+#define STM32_UART_USE_USART3 FALSE
288+#define STM32_UART_USE_UART4 FALSE
289+#define STM32_UART_USE_UART5 FALSE
290+#define STM32_UART_USART1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
291+#define STM32_UART_USART1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
292+#define STM32_UART_USART2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
293+#define STM32_UART_USART2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
294+#define STM32_UART_USART3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
295+#define STM32_UART_USART3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
296+#define STM32_UART_UART4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
297+#define STM32_UART_UART4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
298+#define STM32_UART_UART5_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
299+#define STM32_UART_UART5_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY
300+#define STM32_UART_USART1_DMA_PRIORITY 0
301+#define STM32_UART_USART2_DMA_PRIORITY 0
302+#define STM32_UART_USART3_DMA_PRIORITY 0
303+#define STM32_UART_UART4_DMA_PRIORITY 0
304+#define STM32_UART_UART5_DMA_PRIORITY 0
305+#define STM32_UART_DMA_ERROR_HOOK(uartp) osalSysHalt("DMA failure")
306+
307+/*
308+ * USB driver system settings.
309+ */
310+#define STM32_USB_USE_USB1 FALSE
311+#define STM32_USB_LOW_POWER_ON_SUSPEND FALSE
312+#define STM32_USB_USB1_HP_IRQ_PRIORITY 13
313+#define STM32_USB_USB1_LP_IRQ_PRIORITY 14
314+
315+/*
316+ * WDG driver system settings.
317+ */
318+#define STM32_WDG_USE_IWDG FALSE
319+
320+/*
321+ * WSPI driver system settings.
322+ */
323+#define STM32_WSPI_USE_QUADSPI1 FALSE
324+#define STM32_WSPI_QUADSPI1_DMA_STREAM STM32_DMA_STREAM_ID_ANY
325+
326+#endif /* MCUCONF_H */
--- trunk/testhal/STM32/multi/DAC/cfg/stm32g474re_nucleo64/portab.c (nonexistent)
+++ trunk/testhal/STM32/multi/DAC/cfg/stm32g474re_nucleo64/portab.c (revision 13091)
@@ -0,0 +1,60 @@
1+/*
2+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3+
4+ Licensed under the Apache License, Version 2.0 (the "License");
5+ you may not use this file except in compliance with the License.
6+ You may obtain a copy of the License at
7+
8+ http://www.apache.org/licenses/LICENSE-2.0
9+
10+ Unless required by applicable law or agreed to in writing, software
11+ distributed under the License is distributed on an "AS IS" BASIS,
12+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+ See the License for the specific language governing permissions and
14+ limitations under the License.
15+*/
16+
17+/**
18+ * @file portab.c
19+ * @brief Application portability module code.
20+ *
21+ * @addtogroup application_portability
22+ * @{
23+ */
24+
25+#include "hal.h"
26+
27+#include "portab.h"
28+
29+/*===========================================================================*/
30+/* Module local definitions. */
31+/*===========================================================================*/
32+
33+/*===========================================================================*/
34+/* Module exported variables. */
35+/*===========================================================================*/
36+
37+/*===========================================================================*/
38+/* Module local types. */
39+/*===========================================================================*/
40+
41+/*===========================================================================*/
42+/* Module local variables. */
43+/*===========================================================================*/
44+
45+/*===========================================================================*/
46+/* Module local functions. */
47+/*===========================================================================*/
48+
49+/*===========================================================================*/
50+/* Module exported functions. */
51+/*===========================================================================*/
52+
53+void portab_setup(void) {
54+
55+ /* Setting up the output pin as analog as suggested
56+ by the Reference Manual.*/
57+ palSetPadMode(GPIOA, 4, PAL_MODE_INPUT_ANALOG);
58+}
59+
60+/** @} */
--- trunk/testhal/STM32/multi/DAC/cfg/stm32g474re_nucleo64/portab.h (nonexistent)
+++ trunk/testhal/STM32/multi/DAC/cfg/stm32g474re_nucleo64/portab.h (revision 13091)
@@ -0,0 +1,77 @@
1+/*
2+ ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
3+
4+ Licensed under the Apache License, Version 2.0 (the "License");
5+ you may not use this file except in compliance with the License.
6+ You may obtain a copy of the License at
7+
8+ http://www.apache.org/licenses/LICENSE-2.0
9+
10+ Unless required by applicable law or agreed to in writing, software
11+ distributed under the License is distributed on an "AS IS" BASIS,
12+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+ See the License for the specific language governing permissions and
14+ limitations under the License.
15+*/
16+
17+/**
18+ * @file portab.h
19+ * @brief Application portability macros and structures.
20+ *
21+ * @addtogroup application_portability
22+ * @{
23+ */
24+
25+#ifndef PORTAB_H
26+#define PORTAB_H
27+
28+/*===========================================================================*/
29+/* Module constants. */
30+/*===========================================================================*/
31+
32+#define PORTAB_LINE_LED1 LINE_LED
33+#define PORTAB_LED_OFF PAL_LOW
34+#define PORTAB_LED_ON PAL_HIGH
35+
36+#define PORTAB_LINE_BUTTON LINE_BUTTON
37+#define PORTAB_BUTTON_PRESSED PAL_HIGH
38+
39+#define PORTAB_SD1 LPSD1
40+
41+#define PORTAB_DAC_TRIG 7
42+
43+/*===========================================================================*/
44+/* Module pre-compile time settings. */
45+/*===========================================================================*/
46+
47+/*===========================================================================*/
48+/* Derived constants and error checks. */
49+/*===========================================================================*/
50+
51+/*===========================================================================*/
52+/* Module data structures and types. */
53+/*===========================================================================*/
54+
55+/*===========================================================================*/
56+/* Module macros. */
57+/*===========================================================================*/
58+
59+/*===========================================================================*/
60+/* External declarations. */
61+/*===========================================================================*/
62+
63+#ifdef __cplusplus
64+extern "C" {
65+#endif
66+ void portab_setup(void);
67+#ifdef __cplusplus
68+}
69+#endif
70+
71+/*===========================================================================*/
72+/* Module inline functions. */
73+/*===========================================================================*/
74+
75+#endif /* PORTAB_H */
76+
77+/** @} */
--- trunk/testhal/STM32/multi/DAC/Makefile (revision 13090)
+++ trunk/testhal/STM32/multi/DAC/Makefile (revision 13091)
@@ -4,6 +4,10 @@
44
55 all:
66 @echo
7+ @echo === Building for STM32G474RE-Nucleo64 ==============================
8+ @make --no-print-directory -f ./make/stm32g474re_nucleo64.make all
9+ @echo ====================================================================
10+ @echo
711 @echo === Building for STM32H743-Nucleo144 ===============================
812 @make --no-print-directory -f ./make/stm32h743_nucleo144.make all
913 @echo ====================================================================
@@ -19,6 +23,8 @@
1923
2024 clean:
2125 @echo
26+ -@make --no-print-directory -f ./make/stm32g474re_nucleo64.make clean
27+ @echo
2228 -@make --no-print-directory -f ./make/stm32h743_nucleo144.make clean
2329 @echo
2430 +@make --no-print-directory -f ./make/stm32l476_discovery.make clean
Show on old repository browser