Commit Graph

132 Commits

Author SHA1 Message Date
László Monda
aab0e8473f Enable left half I2C watchdog in reinit mode because it seems to improve things. 2018-01-11 23:43:34 +01:00
László Monda
25a2b3af93 Convert tabs to spaces. 2017-12-27 17:21:28 +01:00
László Monda
43587c2e1f Define I2C_WATCHDOG_VALUE_REINIT and I2C_WATCHDOG_VALUE_REBOOT and make them work when assigned to I2C_WATCHDOG. 2017-12-27 17:07:04 +01:00
Erich Styger
7eb83173ed changed I2C watchdog timer implementation, as LPTMR was already used by key scanner 2017-12-25 17:15:41 +01:00
Erich Styger
5581dd26b5 fixed and enabled software watchdog timer 2017-12-24 12:06:46 +01:00
László Monda
fd43e81e46 Query module key count and pointer count in separate messages instead of a combined message for better clarity. 2017-12-15 02:13:58 +01:00
László Monda
c994a97d03 Make the modules transfer their firmware version to the device. Fix the message length of the module protocol version. 2017-12-15 01:42:58 +01:00
László Monda
d59ba83d99 Make the modules transfer a module protocol version composed of a major, a minor and a patch number. 2017-12-15 01:28:13 +01:00
László Monda
c1b887cea8 Rename UhkModulePhase_*ProtocolVersion to UhkModulePhase_*ModuleProtocolVersion. 2017-12-15 01:16:27 +01:00
László Monda
9e18caa0ba Set the left KEY_SCANNER_INTERVAL_USEC to 1000 / KEYBOARD_MATRIX_ROWS_NUM 2017-11-14 13:08:01 +01:00
László Monda
f63f2f9b96 Adding left/key_scanner.[ch] which I totally forgot. 2017-11-14 03:43:51 +01:00
László Monda
4c97238999 Even though the current code seems to be working fine, call KeyMatrix_Init() before InitKeyScanner() just to be sure. 2017-11-14 02:40:51 +01:00
László Monda
5c84620704 Call KeyMatrix_ScanRow() from an LPTMR interrupt for the left half. Remove KeyMatrix_Scan() 2017-11-14 02:29:18 +01:00
László Monda
f927aef7f5 Put function curlies into their own line according to our coding standards all across the codebase. 2017-11-10 23:14:44 +01:00
László Monda
c2efb5e0d0 Rename watchdog related variables to be more intuitively named. 2017-11-09 20:41:19 +01:00
László Monda
c83e331c37 Remove the unused PROTOCOL_RESPONSE_{SUCCESS,GENERIC_ERROR} macros. 2017-11-09 01:45:55 +01:00
László Monda
f1058294a6 Wrap the whole debug_over_spi.[ch] files into #ifdef DEBUG_OVER_SPI to silence compiler warnings when it's not defined. 2017-11-09 01:33:23 +01:00
László Monda
e5865009f5 Remove unused SetError(), SetGenericError, and SetResponseByte() functions. 2017-11-09 01:17:50 +01:00
László Monda
5149e7e8ad Remove the now unused ALWAYS_ENTER_BOOTLOADER macro. 2017-10-21 03:40:10 +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
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
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
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