Rev 2408 | Rev 2445 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1573 | tk | 1 | // $Id: mios32_config.h 2425 2016-11-03 00:44:22Z tk $ |
2 | /* |
||
3 | * Local MIOS32 configuration file |
||
4 | * |
||
5 | * this file allows to disable (or re-configure) default functions of MIOS32 |
||
6 | * available switches are listed in $MIOS32_PATH/modules/mios32/MIOS32_CONFIG.txt |
||
7 | * |
||
8 | */ |
||
9 | |||
10 | #ifndef _MIOS32_CONFIG_H |
||
11 | #define _MIOS32_CONFIG_H |
||
12 | |||
13 | // The boot message which is print during startup and returned on a SysEx query |
||
1657 | tk | 14 | #define MIOS32_LCD_BOOT_MSG_DELAY 0 // we delay the boot and print a message inside the app |
2408 | tk | 15 | #define MIOS32_LCD_BOOT_MSG_LINE1 "MIDIbox NG V1.036" |
16 | #define MIOS32_LCD_BOOT_MSG_LINE2 "(C) 2016 T.Klose" |
||
1573 | tk | 17 | |
18 | // define a unique VID/PID for this application |
||
19 | #define MIOS32_USB_PRODUCT_STR "MIDIbox NG" |
||
20 | |||
21 | // enable 4 USB ports |
||
22 | #define MIOS32_USB_MIDI_NUM_PORTS 4 |
||
23 | |||
1607 | tk | 24 | // increased number of SRs |
25 | #define MIOS32_SRIO_NUM_SR 32 |
||
1573 | tk | 26 | |
1902 | tk | 27 | // use 32 DOUT pages |
1699 | tk | 28 | #define MIOS32_SRIO_NUM_DOUT_PAGES 32 |
1696 | tk | 29 | |
1640 | tk | 30 | // disables the default SRIO scan routine in programming_models/traditional/main.c |
31 | // allows to implement an own handler |
||
32 | // -> see app.c, APP_SRIO_* |
||
1667 | tk | 33 | #define MIOS32_DONT_SERVICE_SRIO_SCAN 1 |
1640 | tk | 34 | |
2035 | tk | 35 | // special callback which will be called for DIN pin emulation |
36 | #define MIOS32_SRIO_CALLBACK_BEFORE_DIN_COMPARE APP_SRIO_ServiceFinishBeforeDINCompare |
||
37 | |||
1573 | tk | 38 | // enable 4 MIDI ports (note: MIDI3 only used if AIN ports disabled) |
39 | #if defined(MIOS32_FAMILY_STM32F10x) |
||
40 | // enable third UART |
||
41 | # define MIOS32_UART_NUM 3 |
||
42 | #else |
||
43 | // enable third and fourth UART |
||
44 | # define MIOS32_UART_NUM 4 |
||
45 | #endif |
||
46 | |||
47 | |||
1768 | tk | 48 | // enable 128 encoders (because SCS allocates one encoder as well) |
49 | #define MIOS32_ENC_NUM_MAX 129 |
||
1573 | tk | 50 | |
51 | |||
1640 | tk | 52 | // the SCS is entered by pressing the EXIT button |
53 | #define SCS_MENU_ENTERED_VIA_EXIT_BUTTON 1 |
||
54 | |||
1692 | tk | 55 | // max. number of menu items (configurable with SCS num_items=...) |
56 | #define SCS_NUM_MENU_ITEMS 8 |
||
1640 | tk | 57 | |
1692 | tk | 58 | |
1573 | tk | 59 | // AIN configuration: |
60 | |||
61 | // bit mask to enable channels |
||
62 | // |
||
63 | // Pin mapping on MBHP_CORE_STM32 module: |
||
64 | // 15 14 13 12 11 10 9 8 |
||
65 | // J16.SO J16.SI J16.SC J16.RC J5C.A11 J5C.A10 J5C.A9 J5C.A8 |
||
66 | // 7 6 5 4 3 2 1 0 |
||
67 | // J5B.A7 J5B.A6 J5B.A5 J5B.A4 J5A.A3 J5A.A2 J5A.A1 J5A.A0 |
||
68 | // |
||
69 | // Examples: |
||
70 | // mask 0x000f will enable all J5A channels |
||
71 | // mask 0x00f0 will enable all J5B channels |
||
72 | // mask 0x0f00 will enable all J5C channels |
||
73 | // mask 0x0fff will enable all J5A/B/C channels |
||
74 | // (all channels are disabled by default) |
||
1940 | tk | 75 | #if defined(MIOS32_FAMILY_STM32F10x) || defined(MIOS32_FAMILY_LPC17xx) |
76 | // reduced to 6 pins due to conflict with MIDI OUT3/IN3 |
||
1573 | tk | 77 | #define MIOS32_AIN_CHANNEL_MASK 0x003f |
1940 | tk | 78 | #else |
79 | #define MIOS32_AIN_CHANNEL_MASK 0x00ff |
||
80 | #endif |
||
1573 | tk | 81 | |
82 | // define the deadband (min. difference to report a change to the application hook) |
||
83 | // typically set to (2^(12-desired_resolution)-1) |
||
84 | // e.g. for a resolution of 7 bit, it's set to (2^(12-7)-1) = (2^5 - 1) = 31 |
||
85 | #define MIOS32_AIN_DEADBAND 31 |
||
86 | |||
87 | |||
88 | #define DEBUG_MSG MIOS32_MIDI_SendDebugMessage |
||
89 | |||
90 | // enable two AINSER modules |
||
91 | #define AINSER_NUM_MODULES 2 |
||
92 | |||
1631 | tk | 93 | // enable 32 AOUT channels |
94 | #define AOUT_NUM_CHANNELS 32 |
||
95 | // configurable chip select pin |
||
96 | extern char mbng_patch_aout_spi_rc_pin; |
||
97 | #define AOUT_SPI_RC_PIN mbng_patch_aout_spi_rc_pin |
||
98 | |||
1752 | tk | 99 | // enable 1 MAX72xx chain with up to 16 devices |
100 | #define MAX72XX_NUM_CHAINS 1 |
||
101 | #define MAX72XX_NUM_DEVICES_PER_CHAIN 16 |
||
102 | // configurable chip select pin |
||
103 | extern char mbng_patch_max72xx_spi_rc_pin; |
||
104 | #define MAX72XX_SPI_RC_PIN_CHAIN1 mbng_patch_max72xx_spi_rc_pin |
||
105 | |||
106 | |||
1573 | tk | 107 | // reserved memory for FreeRTOS pvPortMalloc function |
2408 | tk | 108 | #define MIOS32_HEAP_SIZE 11*1024 |
1599 | tk | 109 | // UMM heap located in default section (means for LPC17: not in AHB memory, because we are using it for the event pool) |
110 | #define UMM_HEAP_SECTION |
||
1573 | tk | 111 | |
1610 | tk | 112 | // stack sizes which are used by various tasks (see APP_Init() in app.c) |
113 | #define APP_BIG_STACK_SIZE (2048) |
||
114 | #define APP_REDUCED_STACK_SIZE (1024) |
||
115 | // for the MIOS32 hooks in main.c |
||
116 | #define MIOS32_MINIMAL_STACK_SIZE APP_BIG_STACK_SIZE |
||
117 | // for the UIP task |
||
1876 | tk | 118 | #define UIP_TASK_STACK_SIZE APP_BIG_STACK_SIZE |
1610 | tk | 119 | |
1599 | tk | 120 | // optionally for task analysis - if enabled, the stats can be displayed with the "system" command in MIOS Terminal |
121 | #if 0 |
||
1744 | tk | 122 | #define configUSE_TRACE_FACILITY 1 |
123 | #define configGENERATE_RUN_TIME_STATS 0 |
||
2425 | tk | 124 | #if configGENERATE_RUN_TIME_STATS |
1599 | tk | 125 | #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS FREERTOS_UTILS_PerfCounterInit |
126 | #define portGET_RUN_TIME_COUNTER_VALUE FREERTOS_UTILS_PerfCounterGet |
||
127 | #endif |
||
2425 | tk | 128 | #endif |
1599 | tk | 129 | |
1584 | tk | 130 | // for LPC17: simplify allocation of large arrays |
131 | #if defined(MIOS32_FAMILY_LPC17xx) |
||
132 | # define AHB_SECTION __attribute__ ((section (".bss_ahb"))) |
||
133 | #else |
||
134 | # define AHB_SECTION |
||
135 | #endif |
||
1573 | tk | 136 | |
1599 | tk | 137 | // LPC17 Ethernet driver: locate buffers to lower (default) section |
138 | // (no attribute passed to this variable) |
||
139 | #define LPC17XX_EMAC_MEM_SECTION |
||
140 | // reduce number of buffers to save memory |
||
141 | #define LPC17XX_EMAC_NUM_RX_FRAG 2 |
||
142 | #define LPC17XX_EMAC_NUM_TX_FRAG 2 |
||
143 | #define LPC17XX_EMAC_FRAG_SIZE 1024 |
||
144 | |||
145 | |||
1584 | tk | 146 | // size of SysEx buffers |
147 | // if longer SysEx strings are received, they will be forwarded directly |
||
148 | // in this case, multiple strings concurrently sent to the same port won't be merged correctly anymore. |
||
149 | #define MIDI_ROUTER_SYSEX_BUFFER_SIZE 16 |
||
150 | |||
2408 | tk | 151 | // sequencer |
152 | #define SEQ_MIDI_OUT_MAX_EVENTS 32 |
||
153 | |||
1688 | tk | 154 | // Keyboard Handler |
155 | #define KEYBOARD_NOTIFY_TOGGLE_HOOK MBNG_KB_NotifyToggle |
||
156 | #define KEYBOARD_DONT_USE_MIDI_CFG 1 |
||
157 | #define KEYBOARD_DONT_USE_AIN 1 |
||
1604 | tk | 158 | |
2237 | tk | 159 | // disable calibration for LPC17 (not enough memory...) |
160 | #if defined(MIOS32_FAMILY_LPC17xx) |
||
161 | #define KEYBOARD_USE_SINGLE_KEY_CALIBRATION 0 |
||
162 | #endif |
||
1688 | tk | 163 | |
2097 | tk | 164 | // enable 4 SPI MIDI ports |
165 | // Note: SPI MIDI port has to be explicitely enabled by the user |
||
166 | // He has to enter "set spi_midi 1" in the bootloader update application |
||
167 | // Without this measure, the ENC28J60 based Ethernet Extension will be accessed via J16:RC2 |
||
168 | // With "spi_midi" enable, the ENC28J60 driver will be disabled and OSC won't be available on board != LPC17 (which has an inbuilt ETH port) |
||
169 | #define MIOS32_SPI_MIDI_NUM_PORTS 4 |
||
2095 | tk | 170 | |
1610 | tk | 171 | // map MIDI mutex to UIP task |
172 | // located in app.c to access MIDI IN/OUT mutex from external |
||
173 | extern void APP_MUTEX_MIDIOUT_Take(void); |
||
174 | extern void APP_MUTEX_MIDIOUT_Give(void); |
||
175 | extern void APP_MUTEX_MIDIIN_Take(void); |
||
176 | extern void APP_MUTEX_MIDIIN_Give(void); |
||
177 | #define UIP_TASK_MUTEX_MIDIOUT_TAKE { APP_MUTEX_MIDIOUT_Take(); } |
||
178 | #define UIP_TASK_MUTEX_MIDIOUT_GIVE { APP_MUTEX_MIDIOUT_Give(); } |
||
179 | #define UIP_TASK_MUTEX_MIDIIN_TAKE { APP_MUTEX_MIDIIN_Take(); } |
||
180 | #define UIP_TASK_MUTEX_MIDIIN_GIVE { APP_MUTEX_MIDIIN_Give(); } |
||
181 | |||
182 | // Mutex for J16 access |
||
183 | extern void APP_J16SemaphoreTake(void); |
||
184 | extern void APP_J16SemaphoreGive(void); |
||
185 | #define MIOS32_SDCARD_MUTEX_TAKE { APP_J16SemaphoreTake(); } |
||
186 | #define MIOS32_SDCARD_MUTEX_GIVE { APP_J16SemaphoreGive(); } |
||
187 | #define MIOS32_ENC28J60_MUTEX_TAKE { APP_J16SemaphoreTake(); } |
||
188 | #define MIOS32_ENC28J60_MUTEX_GIVE { APP_J16SemaphoreGive(); } |
||
2095 | tk | 189 | #define MIOS32_SPI_MIDI_MUTEX_TAKE { APP_J16SemaphoreTake(); } |
190 | #define MIOS32_SPI_MIDI_MUTEX_GIVE { APP_J16SemaphoreGive(); } |
||
1610 | tk | 191 | |
1573 | tk | 192 | #endif /* _MIOS32_CONFIG_H */ |