Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge develop into main #880

Merged
merged 640 commits into from
Feb 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
640 commits
Select commit Hold shift + click to select a range
23d0fad
deprecation: remove unused stm32f412r target
mbrossard Oct 21, 2021
ff7a531
deprecation: remove lpc11u35_wiobg96_if project
mbrossard Oct 21, 2021
7ca112b
deprecation: remove lpc11u35_wizwiki_w7500_eco_if project
mbrossard Oct 21, 2021
77357bf
deprecation: remove lpc11u35_wizwiki_w7500_if project
mbrossard Oct 21, 2021
8c305ad
deprecation: remove lpc11u35_wizwiki_w7500p_if project
mbrossard Oct 21, 2021
5f880c2
deprecation: remove unused wiz7500 target
mbrossard Oct 21, 2021
64c624a
deprecation: remove g_wiznet_family reset family
mbrossard Oct 21, 2021
27d3f58
deprecation: remove sam3u2c_ncs36510rf_if project
mbrossard Oct 21, 2021
5f4f96b
deprecation: remove unused ncs36510 target
mbrossard Oct 21, 2021
dcbfa88
deprecation: remove kl26z_nina_b1_if project
mbrossard Oct 21, 2021
0dcc7c4
deprecation: remove lpc11u35_ro359b_if project
mbrossard Oct 21, 2021
27037b1
github_actions: enable build on pull-requests to develop branch
mbrossard Oct 23, 2021
f5fb4b9
doc: move build instructions from README.md to docs/DEVELOPERS-GUIDE.md
mbrossard Oct 23, 2021
2024a09
Serial and I2C fixes for Microbit V2 (#892)
gerargz Nov 4, 2021
e58d44b
Remove obsolete projects and targets (#876)
mathias-arm Nov 8, 2021
82d9b4d
DAP: define constants for DAPLink's CMSIS-DAP vendor commands. (#891)
flit Nov 8, 2021
28242d4
nrf52820_hic: Import CMSIS startup/system for nRF52820
mbrossard Jun 20, 2021
2dc1f54
nrf52820_hic: import initial memory map
mbrossard Jun 20, 2021
8f04fde
nrf52820_hic: import empty configuration and function stubs
mbrossard Jun 20, 2021
5458f77
nrf52820_hic: add nrf52820 HIC to DAPLink
mbrossard Jun 20, 2021
c16d12c
nrf52820_hic: adapt GCC assembly for DAPLink
mbrossard Jun 20, 2021
1b64bb3
nrf52820_hic: compilation work-around and fixes
mbrossard Jun 20, 2021
19a5b09
nrf52820_hic: start development using nRF52833-DK
mbrossard Jul 13, 2021
9baf055
nrf52820_hic: import nRF528xx RL-USB module
mathias-arm Jul 14, 2021
2a03fa4
nrf52820_hic: compilation fixes
mathias-arm Jul 14, 2021
c5572ed
nrf52820_hic: copy memory for GCC
mbrossard Jul 14, 2021
a420a2b
nrf52820_hic: fix armcc startup
mathias-arm Jul 14, 2021
6e07315
nrf52820_hic: fix gcc startup
mbrossard Jul 15, 2021
dfb59de
nrf52820_hic: update to nRF_DeviceFamilyPack version 8.38.0
mathias-arm Jul 15, 2021
0dffdbd
nrf52820_hic: change bl size to 32 KB and total flash to 128 KB
mathias-arm Jul 15, 2021
7c8b9d0
nrf52820_hic: implement bootloader flashing
mathias-arm Jul 15, 2021
b750ec8
nrf52820_hic: nrf52xx interface projects
mathias-arm Jul 15, 2021
4eba499
nrf52820_hic: fix uvision compilation
mbrossard Jul 15, 2021
eb18bf5
Initial attempt at DAP_config.h, alternate pin mapping and documentation
mbrossard Jul 16, 2021
628185a
nrf52820_hic: import USART CMSIS Driver
mathias-arm Jul 20, 2021
8362c5d
nrf52820_hic: add CMSIS Driver headers + gcc compilation fix
mbrossard Jul 20, 2021
f6a9df1
nrf52820_hic: connect CMSIS Driver to DAPLink UART
mbrossard Jul 20, 2021
8ac7274
nrf52820_hic: Add missing DAP_config.h changes
mbrossard Jul 20, 2021
d414d43
Fix several USB bugs
c1728p9 Jul 21, 2021
3d67cd0
nrf52820_hic: UART fix from @c1728p9
mathias-arm Jul 22, 2021
25d5ee2
nrf52820_hic: connect USART driver configuration, disable CTS/RTS
mathias-arm Jul 22, 2021
05d0f6c
nrf52820_hic: support dynamic pin assignment for nRF52833
mathias-arm Jul 22, 2021
f23b4e5
nrf52820_hic: fix LED pin assignments and active state, add power LED
mathias-arm Jul 22, 2021
48a513a
nrf52820_hic: fix CPU clock in DAP_Config.h
mathias-arm Jul 22, 2021
d7b36af
nrf52820_hic: implement read_unique_id()
mathias-arm Jul 22, 2021
bcd8e4d
nrf52820_hic: change pins on nRF52833-DK to be compatible with nRF528…
mbrossard Jul 22, 2021
da075b1
nrf52820_hic: fix SWCLK typo
mbrossard Jul 26, 2021
dfee1a5
nrf52820_hic: implement fast GPIO version
mbrossard Jul 26, 2021
29b0631
nrf52820_hic: re-use existing board IDs for pyocd auto-detection
mathias-arm Oct 20, 2021
5609892
Fix uv5 compilation for Nordic
c1728p9 Jul 27, 2021
ca4dc47
Fix CMSIS v1 USB Interface
c1728p9 Jul 27, 2021
42f47c0
Disable HS USB for nrf52840
c1728p9 Jul 27, 2021
00895da
nrf52820_hic: alternate optimized GPIO for DAP
mbrossard Jul 28, 2021
c26bafb
nrf52820_hic: switch all GPIO to DAPLink version of Nordic HAL
mbrossard Jul 28, 2021
14bc677
nrf52820_hic: remove old GPIO implementation
mbrossard Jul 28, 2021
2f8d5ee
Enable SOF events on nRF52840 to fix USB latency
c1728p9 Jul 30, 2021
f2b5726
Fix dropped uart TX data on nRF52840
c1728p9 Jul 30, 2021
3dc2b47
Correct UART pins on the nrf528xx
c1728p9 Aug 10, 2021
6c09085
Correct UART pins on the nrf528xx docs
c1728p9 Aug 10, 2021
05bcb06
nrf52820_hic: add dynamic pin test for nRF52833-DK
mbrossard Jul 28, 2021
92aa678
nrf52820_hic: Import CMSIS I2C driver
mathias-arm Aug 17, 2021
2c4cfe1
nrf52820_hic: Port #840 and #842 UART fixes to nrf52820
mathias-arm Aug 20, 2021
dc4a5a3
nrf52820_hic: bump default SWD frequency to 8 MHz
mathias-arm Sep 10, 2021
b3daa08
nrf52820_hic: support for case-sensitive file-system and compilation …
mathias-arm Sep 22, 2021
96a3108
nrf52820_hic: update to nrfx v2.5.0 (1/3)
mbrossard Oct 1, 2021
d650147
nrf52820_hic: update to nrfx v2.5.0 (2/3)
mbrossard Oct 1, 2021
603ff02
nrf52820_hic: update to nrfx v2.5.0 (3/3)
mbrossard Oct 1, 2021
f966882
nrf52820_hic: configuration clean-ups after nrfx update
mbrossard Oct 1, 2021
8f1ab86
nrf52820_hic: I2C address configuration to RTE_Device.h
mbrossard Oct 1, 2021
b48b622
nrf52820_hic: update DAP_config.h for CMSIS-DAP 2.1
mathias-arm Oct 20, 2021
2e833c0
nrf52820_hic: remove the old nrf52833_dk projects used for early deve…
mathias-arm Oct 22, 2021
e6bc062
nrf52820_hic: remove CMSIS headers and minor clean-ups
mathias-arm Oct 22, 2021
3df6695
nrf52820_hic: add nrf52820.md to index
mbrossard Oct 23, 2021
f872aa4
nrf52820_hic: add nrf52820_microbit_if
mathias-arm Oct 20, 2021
9b361a2
nrf52820_hic: Update board IDs used.
microbit-carlos Sep 15, 2021
e2a2e47
nrf52820_hic: fix microbit board after rebase
mathias-arm Sep 21, 2021
9cf30c4
nrf52820_hic: enable uhex support for microbitv2 on nrf52820
mbrossard Sep 22, 2021
587a395
nrf52820_hic: Combine microbit board ID configuration.
microbit-carlos Sep 24, 2021
1954fa4
nrf52820_hic: Separate sources for different micro:bit V2 interface uC.
microbit-carlos Sep 28, 2021
580d458
nrf52820_hic: Extract I2C code from i2c_commands.
microbit-carlos Oct 11, 2021
63fdc2c
nrf52820_hic: Extract platform-specific gpio code from microbitv2.c.
microbit-carlos Sep 28, 2021
2dfb2b5
nrf52820_hic: Enable all features in microbitv2.c.
microbit-carlos Oct 8, 2021
29c95cb
nrf52820_hic: Initial steps for I2C integration.
microbit-carlos Oct 11, 2021
2f3482e
nrf52820_hic: Add docstrings to power.h & pwr_mon.h.
microbit-carlos Oct 13, 2021
3617bc7
nrf52820_hic: Add matched I2C address to each event.
microbit-carlos Oct 17, 2021
09705b7
nrf52820_hic: Refactor storage defines & add nRF implementation.
microbit-carlos Oct 18, 2021
f18f963
nrf52820_hic: Fix I2C issues caused by leftover debugging code.
microbit-carlos Nov 1, 2021
409da12
nrf52820_hic: Configure NFC pins as GPIO in nRF52833.
microbit-carlos Nov 2, 2021
1fa5cfa
nrf52820_hic: Add base for custom micro:bit bootloader.
microbit-carlos Nov 3, 2021
58b917c
nrf52820_hic: Don't stay in micro:bit bootloader if waken up with res…
microbit-carlos Nov 3, 2021
e39531b
nrf52820_hic: Move microbit's gflashConfig structure into i2c_commands.
microbit-carlos Nov 5, 2021
ee48706
nrf52820_hic: Reset storage settings in RAM with erase.act
microbit-carlos Nov 7, 2021
f73a44a
Implement nRF52820 power.c
martinwork Oct 20, 2021
1e87c5d
nRF52820 power.c - update for contributing guidelines
martinwork Oct 20, 2021
d37d7bf
nRF52820 pwm.c implemented
martinwork Oct 20, 2021
62b4fd0
nRF52820 implement i2c_deinitialize()
martinwork Oct 20, 2021
0531002
nRF52820 power.c - no need to configure UART pins
martinwork Oct 20, 2021
af98cf6
nRF52820 power_mon.c with nRF52833 pwr_mon_adc.c&.h
martinwork Oct 27, 2021
cf6d35f
nRF52820 limit battery check to 3ms
martinwork Nov 1, 2021
41a0930
Use VBUS_ABSENT instead of POWER USBREMOVED/USBDETECTED
martinwork Nov 5, 2021
07ed49c
Fix PWM and remove power debug code
martinwork Nov 8, 2021
6efa98e
nrf52820_microbit: Add fileEncWindowStart and fileEncWindowEnd to i2c…
microbit-carlos Nov 8, 2021
2c6f6e0
Fix a few typos in lpc55xx/uart.c (#888)
mbrossard Nov 9, 2021
465003f
lpc55xx_hic: change memory map to support LPC552x models (#895)
mbrossard Nov 9, 2021
dcc39aa
nrf52820_hic: Update nrf52_erratas.h to be applied to nRF52833 on nRF…
microbit-carlos Nov 10, 2021
bf6237e
nrf52820_microbit: HID LED initially off (#9)
martinwork Nov 10, 2021
edf3af8
nrf52820_microbit: Set the power red LED off by default.
microbit-carlos Nov 10, 2021
6813d5a
nrf52820_microbit: Execute the I2C callbacks in the main task, not th…
microbit-carlos Nov 10, 2021
ff5d63a
nrf52820_microbit: Minor (inconsequential) fixes and clarifications.
microbit-carlos Nov 11, 2021
9175005
nrf52820_microbit: Set up USB, UART and I2C interrupt priorities.
microbit-carlos Nov 11, 2021
a2de166
nrf52820_microbit: Add i2c_wake_timeout to nRF i2c.c.
microbit-carlos Nov 11, 2021
172ab04
lpc55xx_hic: add support for MCU-LINK-PRO and nRESET
mbrossard Nov 4, 2021
04cdbcd
lpc55xx_hic: move MCU-LINK feature to specific images
mbrossard Nov 9, 2021
d0890af
lpc55xx_hic: move MCU-LINK support out of HIC source
mbrossard Nov 9, 2021
b462003
lpc55xx_hic: Add documentation for MCU-LINK and MCU-LINK-PRO support
mbrossard Nov 9, 2021
7ceb030
Add nrf52820 HIC (#882)
mathias-arm Nov 12, 2021
2a58bbb
Improved power IRQ handling
martinwork Nov 12, 2021
7210e1d
nrf52820_microbit: Protect the bootloader flash on every bootloader s…
microbit-carlos Nov 12, 2021
9576326
nrf52820_microbit: Update func declaration args to remove compiler wa…
microbit-carlos Nov 12, 2021
33cd494
nrf52820_microbit: Improve I2C buffer clearing and sleep scheduling.
microbit-carlos Nov 13, 2021
ca591a4
Add support for Pitaya Link probe (#896)
djix123 Nov 13, 2021
35919e9
settings: restore zero_init attribute for config_ram (#901)
mathias-arm Nov 23, 2021
8df64c3
debug: add RTT output support (#899)
mbrossard Nov 23, 2021
752ab30
nrf52820_microbit: Detect USB insertion via USB_DETECTED IRQ instead …
martinwork Nov 23, 2021
1b8a6f9
nrf52820_microbitv2: Use BOOTMODE pin to disable bootloader protectio…
martinwork Nov 24, 2021
2f467bd
nrf52820_hic: ignore duplicate configuration calls
mathias-arm Nov 24, 2021
86f4434
nrf52820_hic: Add call to nrfx_clock_enable()
mathias-arm Nov 16, 2021
fa85278
uart: forward control line state to HIC UART
mathias-arm Nov 19, 2021
e3f8eea
uart: make default UART rate configurable
mathias-arm Nov 24, 2021
6b99c7b
nrf52820_microbit: set default UART baud rate to 115200
mathias-arm Nov 24, 2021
97c3c32
nrf52820_microbit: call uart_reset() when control line state changes
mathias-arm Nov 24, 2021
04cd13f
nrf52820_microbit: Set I2C protocol to v1 until busy flag is implemen…
microbit-carlos Nov 25, 2021
acc630a
nrf52820_microbit: Switch USB & I2C IRQ priorities to reduce I2C issu…
microbit-carlos Nov 25, 2021
43da448
nrf52820_microbit: Start HC xtal & select RC LF clock.
microbit-carlos Nov 25, 2021
5dd2300
nrf52820_microbit: Reduce CDC buffer size to 64B to reduce WebUSB los…
jaustin Nov 26, 2021
d0d9a71
lpc4322_hic: Fix typo in function return type.
microbit-carlos Dec 6, 2021
c455793
Merge pull request #905 from microbit-foundation/feature/nrf52820_mic…
mbrossard Dec 7, 2021
73fc4c2
lpc4322 (core): update startup/system from CMSIS pack
mbrossard Nov 10, 2021
ea6013d
lpc4322 (core): reduce CPU clock to 120 MHz
mbrossard Nov 10, 2021
c6245e5
lpc4322 (gcc): add GNU linker script
May 18, 2021
fb12baf
lpc4322 (config): increase DAP_PACKET_SIZE and DAP_PACKET_COUNT
Dec 28, 2020
8fef660
lpc4322 (SWO): Add CMSIS UART Drivers
mbrossard Nov 10, 2021
810aa40
lpc4322 (SWO): import default RTE_Device.h
mbrossard Nov 10, 2021
2998341
lpc4322 (SWO): define the SWO gpio ports
Jun 16, 2020
90172d5
lpc4322 (SWO): configure the SWO GPIO port as input
May 2, 2020
dac348d
lpc4322 (SWO): make SWO_UART configurable
Jun 16, 2020
d2992f4
lpc4322 (SWO): configure UART1 for SWO, enable SWO for LPC55S69-EVK b…
mbrossard Nov 20, 2021
041c360
lpc4322 (SWO): downgrade CMSIS UART drivers (thanks to @kc8apf)
mbrossard Dec 5, 2021
f4e0774
lpc4322 (gpio): add X_WORD gpio helper
Dec 28, 2020
ab98884
lpc4322 (gpio): use the gpio helpers instead of LPC_GPIO_PORT
Dec 28, 2020
8714f3f
lpc4322 (gpio): implement gpio_set_board_power
Dec 28, 2020
e6bbc89
lpc4322 (gpio): implement LED_CONNECTED_OUT
Dec 28, 2020
ad6df73
lpc4322 (core): set CGU to use 120 MHz core clock
mbrossard Dec 5, 2021
c89c629
Merge pull request #904 from mbrossard/feature/lpc4322_hic
mathias-arm Dec 7, 2021
a7e5c80
Add MIMXRT1170-EVK board support
nxpyandld May 1, 2020
ad3dc1c
MIMXRT1170-EVK: enable SWO
Jun 16, 2020
20d7a7a
MIMXRT1170-EVK: CMSIS-DAP 2.1 updates
mbrossard Dec 5, 2021
34f4d24
Add MIMXRT1060-EVK board support
mbrossard Dec 5, 2021
2a3f33d
Compilation fix for MIMXRT reset
mbrossard Dec 6, 2021
43e7e42
Fixes for multiple MIMXRT boards
mbrossard Dec 5, 2021
6ff1ee5
Bump version to 0257
mathias-arm Dec 7, 2021
0223662
lpc4322_hic: update IRQ Handler names
mathias-arm Dec 8, 2021
37bc06c
nrf52820_hic: add support in tests
mathias-arm Dec 8, 2021
422ded7
tools: add exit error codes when a project name is invalid or git thr…
microbit-carlos Dec 8, 2021
d4e6ad2
python: update pyOCD (and other python dependencies) (#909)
mathias-arm Dec 9, 2021
9ba34e2
Microbit v2: Add HW timer for delays instead of busy "for" loops
gerargz Dec 16, 2021
6951587
implements external target support and selection for nRF5x-DK
ccattuto Dec 18, 2021
07a43d0
Added comments on other nRF boards
ccattuto Dec 19, 2021
60488c6
Support for nRF52840
ccattuto Dec 19, 2021
a4dd72d
Added support for shield debug port
ccattuto Dec 19, 2021
193bb7a
Add support for MIMXRT1170-EVK and MIMXRT1060-EVK boards (#906)
mbrossard Dec 21, 2021
2dd6d1b
DAP: fill the UART capability info only when DAP_UART=1
Dec 8, 2021
280a20d
DAP: also check DAP_UART_USB_COM_PORT=1 before addomg UART capability…
mbrossard Dec 21, 2021
798b9e7
DAP: CMSIS-DAP 2.1 work-around #911
mathias-arm Dec 21, 2021
37ed27b
sam3u2c_hic: dynamic pin assignment only in override
mathias-arm Dec 21, 2021
9d696f2
Renamed project/board files
ccattuto Dec 21, 2021
629b8bf
Rename project / board files
ccattuto Dec 21, 2021
4146f90
Fix incomplete override
ccattuto Dec 21, 2021
1acecc8
kl27z_microbit: Reduce board ID 100us timer delay to account for over…
microbit-carlos Dec 22, 2021
d35658f
microbit-v2: Add HW timer for delays instead of busy "for" loops
mathias-arm Dec 22, 2021
f74905d
Disable MSD when external/shield target is enabled
ccattuto Dec 23, 2021
3c91672
invalidate board and target before detecting board and external targets
ccattuto Dec 23, 2021
6c558ac
Fixed board ID for external targets
ccattuto Dec 23, 2021
0f39c45
Moved invalid target struct to board file.
ccattuto Dec 23, 2021
e5371e2
Fix board name assignments
ccattuto Dec 27, 2021
208cb6c
Remove superfluous board ID assignement
mbrossard Dec 28, 2021
084b83e
Add dap_info.py script to display DAP_Info command results
mbrossard Dec 28, 2021
95de294
Align external target detection to board detection
mbrossard Dec 28, 2021
46f388d
Make external target detection less restrictive
mbrossard Dec 28, 2021
00484a4
Fixed board name assignments in mkit_dk_dongle_nrf5x (#914)
ccattuto Dec 28, 2021
c49da21
External target support & automatic target selection for nRF5x-DK boa…
mbrossard Dec 28, 2021
d22d501
Fix HID interface of LPC55xx HIC (#917)
elfmimi Jan 2, 2022
0f57f81
mimxrt: add test configuration
mbrossard Dec 29, 2021
6ceb627
mimxrt: revert changes to custom validate_bin_nvic()
mbrossard Dec 29, 2021
65e2c46
mimxrt: Fix MIMXRT1060 sectors_info
mbrossard Dec 30, 2021
716b383
mimxrt: Fix MIMXRT1060 stack and buffer pointers
mbrossard Dec 30, 2021
f86e26e
flash: import modified flash algo conversion script
mbrossard Dec 30, 2021
ff10f64
flash: additional enhancements from pyocd
mbrossard Dec 31, 2021
4b50663
mimxrt: update MIMXRT1060 flash algo parameters
mbrossard Dec 31, 2021
1ecbbb2
mimxrt: update flash algorithms for MIMXRT1050 projects
mbrossard Dec 31, 2021
6bef62b
mimxrt: update flash algorithms for MIMXRT1020
mbrossard Dec 31, 2021
a0ac2f1
flash: minor aesthetic tweak to flash algo script
mbrossard Dec 31, 2021
1bd5317
Fix for i.MXRT10xx Flash Algorithms (#918)
mbrossard Jan 2, 2022
d64420d
doc: update README.md in anticipation of merge to main branch
mbrossard Oct 23, 2021
172195e
Add a few projects to the release
mathias-arm Jan 2, 2022
d2bb981
build: git description should always include commit
mbrossard Jan 3, 2022
fd74e52
max32630fthr: fix typo in .htm file name
mbrossard Jan 3, 2022
8dff8e0
usb-hid: move usb-hid to HIC modules
mbrossard Jan 3, 2022
a7ea936
Remove BOARD_EXTRA_BUFFER vestiges.
microbit-carlos Dec 10, 2021
1776d33
microbit: Set CDC ACM default baud rate for micro:bit v1.x and v2.0.
microbit-carlos Dec 10, 2021
3dcc986
Merge pull request #921 from microbit-foundation/microbit-macros
mathias-arm Jan 5, 2022
8f31e4f
lpc11u35_if: remove hid from lpc11u35_if (fixes #915)
mbrossard Jan 3, 2022
8aaa141
lpc11u35_if: keep DAP_PACKET_SIZE at 64 bytes even when HID is disabled
mbrossard Jan 4, 2022
10103f1
Remove HID interface from lpc11u35_if (#922, fixes #915)
mbrossard Jan 5, 2022
130efe7
Remove k20dx_mimxrt1050_evk_hyper_if project (#923)
mbrossard Jan 6, 2022
d60b3e9
hic_docs: minor edits
mbrossard Jun 9, 2021
b01bc5d
hic_docs: add section about J-Link OB for sam3u2c HIC
mbrossard Jun 14, 2021
25b1708
hic_docs: add installation instructions for lpc4322 HIC
mbrossard Jun 14, 2021
df8e414
hic_docs: document the number of endpoints for each HIC
mbrossard Jan 8, 2022
647daee
Update flash algo for LPC55S69 (#926)
mbrossard Jan 10, 2022
be2b4f7
microbitv2_bl: Add non-zero board ID to micro:bit DAPLink bootloader …
microbit-carlos Jan 12, 2022
a35b1e3
lpc55xx_hic: Add test project MCU-LINK + nRF52840-DK
mbrossard Jan 11, 2022
08d6cb5
lpc55xx_hic: Partial revert of "LPC55xx: Improve UART TX performance."
mbrossard Jan 11, 2022
bc3e5a0
lpc55xx_hic: Reduce CPU clock to 96 MHz due to flash writing constraints
mbrossard Jan 11, 2022
9325514
A few fixes for LPC55xx HIC (#927)
mbrossard Jan 13, 2022
335320f
nrf52820_hic: Revert "Improve UART TX performance" for nrf52820 (#930)
mbrossard Jan 13, 2022
9b90cbf
nrf52820_hic: add uart_reset() call to clear spurious interrupts
mbrossard Jan 13, 2022
ebfa1cb
Add option to allow test program in release builds
mbrossard Jan 13, 2022
a2e6e46
microbitv2: Refactory board id and Kl27 timer code into their own files.
microbit-carlos Dec 24, 2021
f04e4e8
microbitv2: Move adc.h/c into microbitv2/kl27z dir.
microbit-carlos Dec 24, 2021
f17e154
microbitv2: Refactor global i2c var, and combine i2c isBusy() into ca…
microbit-carlos Jan 4, 2022
b352f3d
microbitv2: Refactor storage functionality from i2c_commands to stora…
microbit-carlos Jan 6, 2022
06ee206
microbitv2: Update the storage cfg struct to be better aligned & rena…
microbit-carlos Jan 7, 2022
d41da9f
microbitv2: Fully encapsulate storage_cfg inside the storage module.
microbit-carlos Jan 7, 2022
b96433e
microbitv2: Replace commented out code with explanatory comments.
martinwork Jan 12, 2022
8e7ddac
microbitv2: Reset power LED & i2c state when the target is reset and …
microbit-carlos Jan 13, 2022
0a04452
microbitv2: Add comments to KL27/nRF52 power.c differences
martinwork Jan 21, 2022
1dcf89f
micro:bit V2 refactoring and bug fixes (#933)
mathias-arm Jan 21, 2022
d0bee85
lpc55xx_hic: Fix circular buffer and re-apply TX performance improvem…
iosabi Jan 25, 2022
9d8b9d1
microbitv2: Change the busy flag to be the default I2C empty TX buffer.
microbit-carlos Dec 22, 2021
cf164f6
microbitv2: Convert i2c_clearBuffers() into i2c_clearState().
microbit-carlos Jan 4, 2022
000bc1d
microbitv2: Move the I2C TX callback back to inside interrupt.
microbit-carlos Jan 27, 2022
c9db11f
microbitv2: Move when to change internal state for shutdown requested.
microbit-carlos Jan 27, 2022
d917f91
microbitv2: Ensure DMA memory and data written to flash is aligned.
microbit-carlos Jan 27, 2022
2f4b219
nrf52820_hic: Retur error for unimplemented I2C_Control operations.
microbit-carlos Jan 28, 2022
beb2784
Fix issue flashing hex files with 32 bytes data records. (#936)
microbit-carlos Feb 5, 2022
7cb31d4
microbitv2: Reduce target SWD clock to 6 MHz (#937)
gerargz Feb 5, 2022
8193070
Merge pull request #938 (micro:bit features: I2C busy flag)
mathias-arm Feb 5, 2022
eb7677b
test: additional resilience in the MSD tests + remove 2 tests from qu…
mathias-arm Feb 5, 2022
fbb36f8
Merge develop to main
mbrossard Feb 5, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ tmp/
*.axf
*.S19
*.bin
*.hex
*.dep
*.FLM

Expand Down
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
[![DAPLink](/docs/images/daplink-website-logo-link.png)](https://armmbed.github.io/DAPLink/)

# Warning: Development frozen on `main` branch
[![DAPLink](/docs/images/daplink-website-logo-link.png)](https://daplink.io/)

All development and pull requests should now happen on [`develop`](https://github.com/ARMmbed/DAPLink/tree/develop) branch where we are preparing the next version.

**Note:** The `main` branch requires an Arm Compiler 5 or Keil MDK license to build. See the
[`develop`](https://github.com/ARMmbed/DAPLink/tree/develop) branch for gcc and Arm
Compiler 6 support. As soon as testing is complete, gcc will become the default compiler and AC5 support will be
dropped.
[![Linux Build (develop)](https://github.com/ARMmbed/DAPLink/actions/workflows/linux.yml/badge.svg?branch=develop)](https://github.com/ARMmbed/DAPLink/actions/workflows/linux.yml)

----

Expand All @@ -25,12 +19,18 @@ For more detailed usability information [see the users guide.](docs/USERS-GUIDE.

## Compatibility
There are many ARM microcontroller-based Hardware Interface Circuits (HICs) that DAPLink interface firmware runs on. These can be found as standalone boards (debugger) or as part of a development kit. Some branded circuits that are known to be IO compatible are:
* [NXP OpenSDA based on K20, K22 and KL26](http://www.nxp.com/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA)

* [Maxim Integrated MAX32625PICO based on MAX32625](https://www.maximintegrated.com/en/products/microcontrollers/MAX32625PICO.html)
* Nuvoton Nu-Link2-Me based on M48SSIDAE
* [NXP LPC-Link2 based on LPC11U35 or LPC4322](https://www.nxp.com/support/developer-resources/hardware-development-tools/lpcxpresso-boards:LPCXPRESSO-BOARDS)
* [NXP MCU-LINK on LPC55xx](https://www.nxp.com/design/microcontrollers-developer-resources/mcu-link-debug-probe:MCU-LINK)
* [NXP OpenSDA based on K20, K22, KL26Z and KL27Z](http://www.nxp.com/products/software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/opensda-serial-and-debug-adapter:OPENSDA)
* [Segger J-Link OB based on Atmel SAM3U](https://www.segger.com/products/debug-probes/j-link/models/j-link-ob/)
* [STMicroelectronics ST-LINK/V2 (on NUCLEO boards) based on STM32F103CB](https://www.st.com/en/evaluation-tools/stm32-nucleo-boards.html)


## Releases
There are many board builds (board = HIC + target combination) created from this repository. Quarterly releases will contain new features and bugfixes. Standalone bugfixes are released once reported, verified and fixed. Both quarterly and bugfix releases will result in the build number being incremented. Many development kits and products ship with DAPLink interface firmware or are capable of running DAPLink firmware. **[The current release builds and instructions for updating DAPLink interface firmware is hosted on the DAPLink release site.](https://armmbed.github.io/DAPLink/)** Release notes and previous release builds can be found under GitHub releases.
There are many board builds (board = HIC + target combination) created from this repository. Quarterly releases will contain new features and bugfixes. Standalone bugfixes are released once reported, verified and fixed. Both quarterly and bugfix releases will result in the build number being incremented. Many development kits and products ship with DAPLink interface firmware or are capable of running DAPLink firmware. **[The current release builds and instructions for updating DAPLink interface firmware is hosted on the DAPLink release site.](https://daplink.io/)** Release notes and previous release builds can be found under GitHub releases.

## Contribute

Expand Down
154 changes: 66 additions & 88 deletions docs/DEVELOPERS-GUIDE.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
# DAPLink Developers Guide

## Setup
DAPLink sources can be compiled using Keil MDK-ARM or mbed cli tool with arm compiler, which could be run both on Linux and Windows. See [here](AUTOMATED_TESTS.md) for test instructions on both OS and Mac.

DAPLink sources are compiled using `progen` (from [project-generator](https://github.com/project-generator/project_generator)) which can be run on Linux, MacOS and Windows.

Install the necessary tools listed below. Skip any step where a compatible tool already exists.

* Install [Python 2, 2.7.11 or above](https://www.python.org/downloads/) . Add to PATH.
* Install [Python 3](https://www.python.org/downloads/) . Add to PATH.
* Install [Git](https://git-scm.com/downloads) . Add to PATH.
* Install [Keil MDK-ARM](https://www.keil.com/download/product/), preferably version 5. Set environment variable "UV4" to
the absolute path of the UV4 executable if you don't install to the default location. Note that "UV4" is what's used for
both MDK versions 4 and 5. This step can be skipped if you plan to use mbed cli, but you still need Arm Compiler 5, and
MDK is required to debug.
* Install a compiler:
* [GNU Arm Embedded Toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads) . This compiler will be identified as `gcc_arm`.
* [Arm Compiler 6](https://developer.arm.com/tools-and-software/embedded/arm-compiler) . This compiler will be identified as `armclang`. Only supported on Linux and Windows.
* [Keil MDK](https://developer.arm.com/tools-and-software/embedded/keil-mdk) or [Arm Compiler 5](https://developer.arm.com/tools-and-software/embedded/arm-compiler/downloads/legacy-compilers#arm-compiler-5). This compiler will be identified as `armcc`. Only supported on Linux and Windows.
* Install `make` (tested with [GNU Make](https://www.gnu.org/software/make)). [CMake](https://cmake.org) can alternatively be used in conjunction with different implementations of `make` as well as [ninja](https://ninja-build.org).
* Install virtualenv in your global Python installation eg: `pip install virtualenv`.


**Step 1.** Initial setup.

Get the sources and create a virtual environment
Expand All @@ -25,101 +26,83 @@ $ pip install virtualenv
$ virtualenv venv
```

**Step 2.** One-time mbed-cli setup.

This step is only required once if you are planning to use the mbed-cli build method.

First run step 3 below to activate the virtual environment. Then execute these commands.
```
$ mbed deploy
$ mbed config root .
$ mbed config ARM_PATH <FULL_PATH_TO_ARMCC_FOLDER>
```


## Activate virtual environment
**Step 3.** Activate the virtual environment and update requirements. This is necessary when you open a new shell. **This should be done every time you pull new changes**
**Step 2.** Activate the virtual environment and update requirements. This is necessary when you open a new shell. **This should be done every time you pull new changes**

```
$ venv/Scripts/activate (For Linux)
$ venv/Scripts/activate.bat (For Windows)
$ pip install -r requirements.txt
(venv) $ pip install -r requirements.txt
```


## Build
**This should be done every time you pull new changes**

There are two ways to build DAPLink. You can generate Keil MDK project files and build within MDK. MDK is also used to debug DAPLink running on the interface chip. Or, you can use the `mbedcli_compile.py` script to build projects from the command line without requiring MDK.
There are two ways to build DAPLink. You can use the `progen` command-line tool from project-generator or the `tools/progen_compile.py` wrapper tool.

**Step 3.1.** Using `progen_compile.py`

**Step 4.1.** For MDK progen compilation.

This command generates MDK project files under the `projectfiles/uvision` directory.
```
$ progen generate -t uvision
(venv) $ python tools/progen_compile.py [-t <tool>] [--clean] [-v] [--parallel] [<project> [<project> ...]]
```

To only generate one specific project, use a command like this:
```
progen generate -f projects.yaml -p stm32f103xb_stm32f746zg_if -t uvision
```
These options to `progen` set the parameters:
- `-f` for the input projects file
- `-p` for the project name
- `-t` to specify the IDE name
* `-t <tool>`: choose the toolchain to build. The default is `make_gcc_arm`. Other options tested are `make_gcc_arm`, `make_armclang`, `make_armcc`, `cmake_gcc_arm`, `cmake_armclang`, `cmake_armcc`.
* `--clean`: will clear existing compilation products and force recompilation of all files.
* `-v`: will make compilation process more verbose (typically listing all commands with their arguments)
* `--parallel`: enable parallel compilation within a project (projects are compiled sequentially).
* `<project>`: target project to compile (e.g. `stm32f103xb_bl`, `lpc11u35_if`), if none is specified all (140 to 150) projects will be compiled.

**Step 3.2.** Using `progen` with `make`

**Step 4.2.** For mbed-cli project compilation
The following command combines generation and compilation:

This command will build all projects:
```
$ tools/mbedcli_compile.py
(venv) $ progen generate -t make_gcc_arm -p <project> -b
```

To build only a subset of projects, add the project name(s) to the end of the command line. Valid project names are listed
in the usage text shown with `--help`. The first time you build after each pull you should add `--clean` to perform a
complete re-build.
Alternatively one can separate those task:
```
(venv) $ progen generate -t make_gcc_arm -p <project>
(venv) $ make -C projectfiles/make_gcc_arm/<project> [<target>] [VERBOSE=1]
```
Where:
* `<project>`: target project to compile (e.g. `stm32f103xb_bl`, `lpc11u35_if`).
* `<target>`: build target, can be `all`, `clean` or `help`.
* `VERBOSE=1`: display additional compilation information.

## Contribute
We would love to have your changes! Pull requests should be made once a changeset is [rebased onto Master](https://www.atlassian.com/git/tutorials/merging-vs-rebasing/workflow-walkthrough). See the [contributing guide](../CONTRIBUTING.md) for detailed requirements and guidelines for contributions.
**Step 3.3.** Using `progen` with `cmake`

## Mbed-cli compile environment
The following command combines generation and compilation:

### Features
- Support both Python 2.x and 3.x versions.
- Can compile a list of projects or the all of the projects.
- Can generate the release directory with one command.
```
(venv) $ progen generate -t cmake_gcc_arm -o generator=<generator> -p <project> -b
```
* `<generator>`: use `CMake` generators among the following options:
* `make` (`Unix Makefiles`)
* `mingw-make` (`MinGW Makefiles`)
* `msys-make` (`MSYS Makefiles`, untested)
* `ninja` (`Ninja`)
* `nmake` (`NMake Makefiles`)
* `<project>`: target project to compile (e.g. `stm32f103xb_bl`, `lpc11u35_if`).

### Prerequisite
mbed-cli is included in `requirements.txt`, so it will be installed automatically when configuring
your development environment using the steps described above.
**Step 3.4.** Using `progen` for MDK compilation.

### `tools/mbedcli_compile.py` script
Arguments
This command generates MDK project files under the `projectfiles/uvision` directory.
```
$ progen generate -t uvision
```
positional arguments:
projects Selectively compile only the firmware specified
otherwise all projects

optional arguments:
-h, --help show this help message and exit
--release Create a release with the yaml version file
--build-folder BUILD_FOLDER
Release directory to grab files from
--release-folder RELEASE_FOLDER
Directory to create and place files in
--toolchain TOOLCHAIN
Toolchain directory if present
--clean Rebuild or delete build folder before compile
-v Pass verbosity level to mbed compile -vv for more
To only generate one specific project, use a command like this:
```
progen generate -f projects.yaml -p stm32f103xb_stm32f746zg_if -t uvision
```
Valid projects are listed on help.
These options to `progen` set the parameters:
- `-f` for the input projects file
- `-p` for the project name
- `-t` to specify the IDE name

Generate files needed by mbed-cli
* `custom_profile.json` lists toolchain profile or compile flags parsed from the yaml files
* `custom_targets.json` contains platform information for specific hics.
* `.mbedignore` filters all files not needed for the project.
## Contribute
We would love to have your changes! Pull requests should be made once a changeset is [rebased onto main](https://www.atlassian.com/git/tutorials/merging-vs-rebasing/workflow-walkthrough). See the [contributing guide](../CONTRIBUTING.md) for detailed requirements and guidelines for contributions.

## Port
There are three defined ways in which DAPLink can be extended. These are adding target support, adding board support and adding HIC support. Details on porting each of these can be found below.
Expand All @@ -128,15 +111,24 @@ There are three defined ways in which DAPLink can be extended. These are adding
* [Adding a new board](PORT_BOARD.md)
* [Adding a new HIC](PORT_HIC.md)


## Test
DAPLink has an extensive set of automated tests written in Python. They are used for regression testing, but you can use them to validate your DAPLink port. Details are [here](AUTOMATED_TESTS.md)

An option to search for the daplink firmware build in uvision and mbedcli build folders.
`python test/run_test.py --project-tool mbedcli ...` or `python test/run_test.py --project-tool uvision ...`.
`python test/run_test.py --project-tool make_gcc_arm ...` or `python test/run_test.py --project-tool uvision ...`.

## Release

### Release using `progen_compile.py`

* Create a tag with the correct release version and push it to github
* Clean the repo you will be building from by running 'git clean -xdf' followed by 'git reset --hard'
* Run the `progen_compile.py` command with the following parameters (see above for the `-t` flag):
```
(venv) $ python tools/progen_compile.py [-t <tool>] --clean -v --parallel --release
```
* All release deliverables will be created and stored in `firmware_<version>` (where `<version>` is the DAPLink version). Save this wherever your builds are stored.

### Release using uvision

DAPLink contains scripts to automate most of the steps of building a release. In addition to building the release, these scripts also save relevant build information such as git SHA and python tool versions so the same build can be reproduced. The recommended steps for creating a release are below.
Expand All @@ -150,20 +142,6 @@ Note: A previous build can be reproduced by using the ``build_requirements.txt``
To do this add the additional argument ``build_requirements.txt`` when calling ``build_release_uvision.bat`` in step 2.
This will install and build with the exact version of the python packages used to create that build.

### Release using mbedcli

If the project list is not specify, all interface and booloader projects will be compiled. If `--release_version` is given, a folder (`firmware` on default or specified by `--release_folder`, to be concatenated with the version number), will be generated with the bin, update.yml and zip file containing the bins for release
```
$ venv/Scripts/activate
$ pip install -r requirements3.txt
$ tools/mbedcli_compile.py --release_version 0250 --release_folder firmware
```

There is an intermediate step in uvision environment in creating a release directory. This step is not needed in mbedcli environment but to make this equivalent directory invoke
`copy_release_files.py --project-tool mbedcli`
To make a release directory from the step above.
`package_release_files.py SRC_DIR DEST_DIR VERSION_NUMBER --toolchain ARM`

## MDK
If you want to use the MDK (uVision) IDE to work with the DAPLink code, you must launch it in the right environment. The project will fail to build otherwise. To launch uVision properly, use ``tools/launch_uvision.bat``

Expand Down
Loading