Commit Graph

154 Commits

Author SHA1 Message Date
László Monda
52bb02bc3d Rename build and run configurations to reflect device ids. 2017-10-29 21:54:02 +01:00
László Monda
9db5c5e067 Port blhost-unix.sh as update-slave-firmware.js using ShellJS. 2017-10-24 13:59:36 +02:00
László Monda
c370cab513 Use the renamed send-kboot-command-to-slave.js 2017-10-23 22:24:40 +02:00
László Monda
85b1a65ea7 Implement KbootCommand_Ping and set set left BOOTLOADER_TIMEOUT_MS back to 100 ms. 2017-10-23 21:33:08 +02:00
László Monda
c46dcad490 Use reenumerate.js instead of jump-to-bootloader.js and make left/blhost-unix.sh handle argument related errors. 2017-10-23 16:52:15 +02:00
László Monda
ab807cd0c8 Make sendKbootCommand() accept various command types, not only reset. 2017-10-23 01:19:19 +02:00
László Monda
92ee3b5606 Add KBOOT I2C slave driver, its related USB command, and make the firmware updater script of the left half successfully reset the left half after firmware update. 2017-10-22 02:17:43 +02:00
László Monda
5149e7e8ad Remove the now unused ALWAYS_ENTER_BOOTLOADER macro. 2017-10-21 03:40:10 +02:00
László Monda
f67bcced4a Keep only one release and one debug build configuration. Add related kboot run configurations. 2017-10-21 03:35:17 +02:00
László Monda
e9920cfebb Increase the delay from 1s to 2s and flash the firmware script argument. 2017-10-21 03:28:54 +02:00
László Monda
a052f4f59c Add blhost script for the left firmware, too. 2017-10-21 01:27:33 +02:00
László Monda
3230b94973 Make the left half call NVIC_SystemReset() upon receiving SlaveCommand_JumpToBootloader instead of jumping to the ROM address of the bootloader. This way the bootloader timeouts. Remove bootloader.c because it only contained JumpToBootloader() which is now unused. 2017-10-17 00:58:23 +02:00
László Monda
53cb8aa129 Delete armgcc build scripts because they aren't planned to be used anymore. 2017-10-14 13:04:39 +02:00
László Monda
3dd9744e4d Make I2C communication rock stable by hacking I2C_SlaveTransferHandleIRQ() of the KSDK and making the firmware use incoming bytes via userData. 2017-10-09 04:19:26 +02:00
László Monda
859a770ca3 Dump byteIn after xfer->event via SPI. Make the firmware build without using the DEBUG_OVER_SPI macro. 2017-10-08 23:12:40 +02:00
László Monda
6b0ebb1385 Add debug_over_spi.[ch] 2017-10-08 03:38:43 +02:00
László Monda
457894ecd8 Remove redundant InitI2cV2() function prototype. 2017-10-07 16:35:34 +02:00
László Monda
8dba4df6f6 Set the heap size to 0 given that no dynamic memory is allocated in the firmware. This makes the bss go from 1252 to 740, exactly 0x200 difference. 2017-10-07 12:57:52 +02:00
László Monda
3d443a8bfc Remove semihosting related changes. 2017-10-06 22:36:02 +02:00
László Monda
12c055aec7 Extract MODULE_ID. 2017-10-05 18:00:17 +02:00
László Monda
96eb2ef7a3 Make slaves send their protocol version to the master. 2017-10-05 17:55:59 +02:00
László Monda
bd76fb44c2 Make slaves send their module id to the master. 2017-10-05 17:26:10 +02:00
László Monda
1bca95d366 Don't stop execution upon starting a debugging session. 2017-10-04 19:31:28 +02:00
László Monda
a84d184da4 Include stdio.h 2017-10-04 18:34:10 +02:00
László Monda
c965fe185b Enable semihosting for the "uhk-left debug jlink" build. 2017-10-04 18:21:02 +02:00
László Monda
c707f0e408 Transfer a synchronization message to make I2C recovery more robust. 2017-10-04 02:24:34 +02:00
László Monda
7061345ec2 Fix hard faults by moving slaveConfig and slaveHandle out of InitI2c(), thereby making them always available for KSDK. Fixed by @santiagogf89. 2017-10-03 19:15:33 +02:00
László Monda
724d72132a Rearrange slave_command_t enum values a bit to reflect their relative importance and rearrange a related case block too. 2017-10-01 22:21:00 +02:00
László Monda
6edf4113a4 Make the slave check message integrity and only process if it's valid. 2017-10-01 22:05:20 +02:00
László Monda
1b1111e9da Rename I2C_BUFFER_MAX_LENGTH to I2C_MESSAGE_MAX_TOTAL_LENGTH. 2017-10-01 21:55:37 +02:00
László Monda
4ade25d739 Add I2C_MESSAGE_HEADER_LENGTH and use it in i2cSlaveCallback() instead of magic numbers. 2017-10-01 21:42:55 +02:00
László Monda
0ba979a658 Refactor i2cSlaveCallback(). 2017-10-01 21:38:02 +02:00
László Monda
894103a944 Disable the watchdog of the left half because for some reason it makes I2C recovery less reliable. 2017-09-30 20:54:27 +02:00
László Monda
cec8bbfe01 Clone InitI2c() as InitI2cV2() and use it in the LPTMR interrupt handler to avoid the hard fault. 2017-09-30 17:06:17 +02:00
László Monda
3e5767e141 Use KEYBOARD_MATRIX_ROWS_NUM and KEYBOARD_MATRIX_COLS_NUM to compute MODULE_KEY_COUNT. 2017-09-30 01:11:12 +02:00
László Monda
ea71253d6a Remove KEY_STATE_SIZE in favor of the more general BOOL_BYTES_TO_BITS_COUNT() macro. 2017-09-30 00:57:10 +02:00
László Monda
abc1923897 Rename LEFT_KEYBOARD_HALF_KEY_COUNT to MODULE_KEY_COUNT. 2017-09-30 00:47:15 +02:00
László Monda
04047eb128 Make modules send their features (key count and whether they have pointer input) to the master upon enumeration. 2017-09-30 00:08:28 +02:00
László Monda
508ef870ae Rename I2C_Watchdog*Counter to I2cWatchdog_*Counter. 2017-09-29 00:44:22 +02:00
László Monda
9309c1e954 UpperCamelCase rxMessage and txMessage because they're extern variables. 2017-09-28 03:38:44 +02:00
László Monda
d578b7aba8 Remove unused variable DisableKeyMatrixScanState. 2017-09-28 03:24:40 +02:00
László Monda
751810ec4c Explicitly add void to the argument list of zero argument functions. 2017-09-28 03:03:11 +02:00
László Monda
ecf1ad2468 Don't use the extern keyword for functions because it's redundant. 2017-09-28 02:37:55 +02:00
László Monda
145443c65c Fix the computation of KEY_STATE_SIZE and the byte count to memset in BoolBytesToBits() 2017-09-26 20:18:26 +02:00
László Monda
3b3e40af83 Pass i2c_message_t messages not only from the left half to the right, but vice versa. 2017-09-26 04:12:05 +02:00
László Monda
b88c6e4291 Add i2c_message_t and use it all across the codebase. This will allow handling variable-length I2C messages and validation with minimal effort. The test LED and brightness PWM update features got temporarily broken and will fix them soon. 2017-09-25 03:03:14 +02:00
László Monda
ac138d2da6 Rename SlaveCommand_GetKeyStates to SlaveCommand_RequestKeyStates 2017-09-22 02:47:05 +02:00
László Monda
2227508130 Use __WFI() instead of asm("wfi") for better readability. 2017-09-22 02:19:16 +02:00
László Monda
962705a017 Remove DisableKeyMatrixScanState 2017-09-22 02:13:53 +02:00
László Monda
92647b36a9 Move DEFINE_BOOTLOADER_CONFIG_AREA(I2C_ADDRESS_LEFT_KEYBOARD_HALF_BOOTLOADER) from bootloader_config.c to main.c and delete bootloader_config.c 2017-09-22 02:02:23 +02:00