00001
00126
00127
00128 #ifndef FREERTOS_USED
00129 #if (defined __GNUC__)
00130 #include "nlao_cpu.h"
00131 #include "nlao_usart.h"
00132 #endif
00133 #else
00134 #include <stdio.h>
00135 #endif
00136 #include "compiler.h"
00137 #include "board.h"
00138 #include "print_funcs.h"
00139 #include "intc.h"
00140 #include "power_clocks_lib.h"
00141 #ifdef FREERTOS_USED
00142 #include "FreeRTOS.h"
00143 #include "task.h"
00144 #endif
00145 #include "conf_usb.h"
00146 #include "usb_task.h"
00147 #if USB_DEVICE_FEATURE == ENABLED
00148 #include "device_mouse_hid_task.h"
00149 #endif
00150 #if USB_HOST_FEATURE == ENABLED
00151
00152 #include "host_mouse_hid_task.h"
00153 #endif
00154 #include "hid_example.h"
00155
00156
00157
00158
00159
00160
00161
00164
00165 static pcl_freq_param_t pcl_freq_param =
00166 {
00167 .cpu_f = FCPU_HZ,
00168 .pba_f = FPBA_HZ,
00169 .osc0_f = FOSC0,
00170 .osc0_startup = OSC0_STARTUP
00171 };
00173
00174
00175 #ifndef FREERTOS_USED
00176
00177 #if __GNUC__
00178
00190 int _init_startup(void)
00191 {
00192
00193 extern void _evba;
00194
00195
00196 Set_system_register(AVR32_EVBA, (int)&_evba);
00197
00198
00199 Enable_global_exception();
00200
00201
00202 INTC_init_interrupts();
00203
00204
00205 set_cpu_hz(pcl_freq_param.pba_f);
00206
00207
00208 set_usart_base( ( void * ) DBG_USART );
00209
00210
00211 return 1;
00212 }
00213
00214 #elif (defined __ICCAVR32__)
00215
00219 int __low_level_init(void)
00220 {
00221
00222 Enable_global_exception();
00223
00224
00225 INTC_init_interrupts();
00226
00227
00228 extern volatile avr32_usart_t *volatile stdio_usart_base;
00229 stdio_usart_base = DBG_USART;
00230
00231
00232 return 1;
00233 }
00234
00235 #endif // Compiler
00236
00237 #endif // FREERTOS_USED
00238
00239
00244 int main(void)
00245 {
00246
00247 if (pcl_configure_clocks(&pcl_freq_param) != PASS)
00248 return 42;
00249
00250
00251 pcl_configure_usb_clock();
00252
00253
00254 init_dbg_rs232(pcl_freq_param.pba_f);
00255
00256
00257 usb_task_init();
00258
00259 #if USB_DEVICE_FEATURE == ENABLED
00260
00261 device_mouse_hid_task_init();
00262 #endif
00263 #if USB_HOST_FEATURE == ENABLED
00264
00265
00266
00267 host_mouse_hid_task_init();
00268 #endif
00269
00270 #ifdef FREERTOS_USED
00271
00272 vTaskStartScheduler();
00273 portDBG_TRACE("FreeRTOS returned.");
00274 return 42;
00275 #else
00276
00277 while (TRUE)
00278 {
00279 usb_task();
00280 #if USB_DEVICE_FEATURE == ENABLED
00281 device_mouse_hid_task();
00282 #endif
00283 #if USB_HOST_FEATURE == ENABLED
00284
00285 host_mouse_hid_task();
00286 #endif
00287 }
00288 #endif // FREERTOS_USED
00289 }