aboutsummaryrefslogtreecommitdiffstats
path: root/demos/AVR/TEST-SUITE-OSLIB/main.c
blob: e9b12e0781a86d275326afd45da334f61d38a1b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
/*
    ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
*/

#include "ch.h"
#include "hal.h"
#include "oslib_test_root.h"

/*
 * LED blinker thread, times are in milliseconds.
 */
static THD_WORKING_AREA(waThread1, 32);
static THD_FUNCTION(Thread1, arg) {

  (void)arg;
  chRegSetThreadName("Blinker");
  while (true) {
    palTogglePad(IOPORT2, PORTB_LED1);
    chThdSleepMilliseconds(1000);
  }
}

/*
 * Application entry point.
 */
int main(void) {

  /*
   * System initializations.
   * - HAL initialization, this also initializes the configured device drivers
   *   and performs the board-specific initializations.
   * - Kernel initialization, the main() function becomes a thread and the
   *   RTOS is active.
   */
  halInit();
  chSysInit();

  /*
   * Activates the serial driver 1 using the driver default configuration.
   */
  sdStart(&SD1, NULL);

  /*
   * Starts the LED blinker thread.
   */
  chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO, Thread1, NULL);

  /*
   * Start the OSLIB test suite.
   */
  test_execute((BaseSequentialStream *)&SD1, &oslib_test_suite);

  while (TRUE) {
    chThdSleepMilliseconds(1000);
  }
}
ted; u8 signum; char in_buf[PAGE_SIZE]; unsigned long in_bytes; char out_buf[PAGE_SIZE]; unsigned long out_offset; u8 out_csum; }; /* interface to arch specific routines */ void gdb_write_to_packet( const char *buf, int count, struct gdb_context *ctx); void gdb_write_to_packet_hex( unsigned long x, int int_size, struct gdb_context *ctx); /* ... writes in target native byte order as required by gdb spec. */ void gdb_send_packet(struct gdb_context *ctx); void gdb_send_reply(const char *buf, struct gdb_context *ctx); /* gdb stub trap handler: entry point */ int __trap_to_gdb(struct cpu_user_regs *regs, unsigned long cookie); /* arch specific routines */ u16 gdb_arch_signal_num( struct cpu_user_regs *regs, unsigned long cookie); void gdb_arch_read_reg_array( struct cpu_user_regs *regs, struct gdb_context *ctx); void gdb_arch_write_reg_array( struct cpu_user_regs *regs, const char* buf, struct gdb_context *ctx); void gdb_arch_read_reg( unsigned long regnum, struct cpu_user_regs *regs, struct gdb_context *ctx); void gdb_arch_write_reg( unsigned long regnum, unsigned long val, struct cpu_user_regs *regs, struct gdb_context *ctx); unsigned int gdb_arch_copy_from_user( void *dest, const void *src, unsigned len); unsigned int gdb_arch_copy_to_user( void *dest, const void *src, unsigned len); void gdb_arch_resume( struct cpu_user_regs *regs, unsigned long addr, unsigned long type, struct gdb_context *ctx); void gdb_arch_print_state(struct cpu_user_regs *regs); void gdb_arch_enter(struct cpu_user_regs *regs); void gdb_arch_exit(struct cpu_user_regs *regs); #define GDB_CONTINUE 0 #define GDB_STEP 1 #define SIGILL 4 #define SIGTRAP 5 #define SIGBUS 7 #define SIGFPE 8 #define SIGSEGV 11 #define SIGALRM 14 #define SIGTERM 15 void initialise_gdb(void); #else #define initialise_gdb() ((void)0) #endif #endif /* __XEN_GDBSTUB_H__ */ /* * Local variables: * mode: C * c-set-style: "BSD" * c-basic-offset: 4 * tab-width: 4 * End: */