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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
HAL Directory - Purpose
===========================
This directory contains all the Hardware Abstraction Layer (HAL) files used to
adapt the upper levels of atca-ng and abstractions to physical hardware.
HAL contains physical implementations for I2C, SWI, SPI, UART and timers for
specific hardware platforms.
**Include just those HAL files you require based on platform type.**
CryptoAuthLib Supported HAL Layers
=============================================
HAL Layers files are combined into groups. Initial group is generic files that are typically included in a project.
Files are then broken out by uController Family and or Operating System Interface.
| Protocol Files | Interface | Files | API | Notes |
|----------------|------------|------------------------------|-------------|------------------------------------|
|atca | | atca_hal.c/h | | For all projects |
|kit protocol | | kit_protocol.c/h | | For all Kit Protocol projects |
| | | kit_phy.h | | |
| | | hal_i2c_bitbang.c/h | ASF | For all I2C Bitbang projects |
| | | hal_swi_bitbang.c/h | ASF | For all SWI Bitbang projects |
Most microcontrollers supported by [Atmel START](https://www.microchip.com/start)
have generic drivers depending on the interface.
| START Micros | Interface | Files | API | Notes |
|----------------|------------|------------------------------|-------------|------------------------------------|
| | | hal_timer_start.c | START | Timer implementation |
| | I2C | hal_i2c_start.c/h | START | |
| | SWI | swi_uart_start.c/h | START | SWI using UART |
|AVR Micros | Interface | Files | API | Notes |
|----------------|------------|------------------------------|-------------|------------------------------------|
|at90usb1287 | I2C | hal_at90usb1287_i2c_asf.c/h | ASF | |
| | | hal_at90usb1287_timer_asf.c | ASF | |
| | SWI | swi_uart_at90usb1287_asf.c/h | ASF | |
|xmega_a3bu | I2C | hal_xmega_a3bu_i2c_asf.c/h | ASF | |
| | | hal_xmega_a3bu_timer_asf.c | ASF | |
| | SWI | swi_uart_xmaga_a3bu_asf.c/h | ASF | |
|SAM Micros | Interface | Files | API | Notes |
|----------------|------------|------------------------------|-------------|------------------------------------|
|sam4s | I2C | hal_sam4s_i2c_asf.c/h | ASF | |
| | | hal_sam4s_timer_asf.c | ASF | |
|samb11 | I2C | hal_samb11_i2c_asf.c/h | ASF | |
| | | hal_samb11_timer_asf.c | ASF | |
|samd21 | I2C | hal_samd21_i2c_asf.c/h | ASF | |
| | | hal_samd21_timer_asf.c | ASF | For all samd21 ASF projects |
|samd21 | I2C | i2c_bitbang_samd21.c/h | ASF | For samd21 I2C bitbang projects |
|samd21 | SWI | swi_bitbang_samd21.c/h | ASF | For samd21 SWI bitbang projects |
|samd21 | SWI | swi_uart_samd21.c/h | ASF | For samd21 SWI uart projects |
|samg55 | I2C | hal_samg55_i2c_asf.c/h | ASF | |
| | | hal_samg55_timer_asf.c | ASF | |
|samv71 | I2C | hal_samv71_i2c_asf.c/h | ASF | |
| | | hal_samv71_timer_asf.c | ASF | |
|PIC Micros | Interface | Files | API | Notes |
|----------------|------------|------------------------------|-------------|-------------------------------------------------|
|pic32mx695f512h | I2C | hal_pic32mx695f512h.c/h | plib.h | For pic32mx695f512h Standalone Mplab projects |
| | | hal_pic32mx695f512h_timer.c | plib.h | For pic32mx695f512h Standalone Mplab projects |
|PIC32MZ2048 | I2C | hal_pic32mz2048efm_i2c.c/h | | |
| | | hal_pic32mz2048efm_timer.c | | |
| OS | Interface | Files | API | Notes |
|----------------|------------|----------------------------------|-------------|------------------------------------|
| MS Windows | kit-cdc | hal_win_kit_cdc.c/h | windows.h | For all windows USB CDC projects |
| MS Windows | kit-hid | hal_win_kit_hid.c/h | windows.h | For all windows USB HID projects |
| | | | setupapi.h | |
| MS Windows | | hal_win_timer.c | windows.h | For all windows projects |
| Linux | I2C | hal_linux_i2c_userspace.c/h | i2c-dev | |
| Linux | kit-cdc | hal_linux_kit_cdc.c/h | fopen | For USB Linux CDC projects |
| Linux | kit-hid | hal_linux_kit_hid.c/h | udev | For USB Linux HID Projects |
| Linux/Mac | | hal_linux_timer.c | | For all Linux/Mac projects |
| All | kit-hid | hal_all_platforms_kit_hidapi.c/h | hidapi | Works for Windows, Linux, and Mac |
| freeRTOS | | hal_freertos.c | | freeRTOS common routines |