Coding Spirit



Using some RTOS built-in mbedTLS to connect to AWS IoT Core might fail due to MBEDTLS_ERR_SSL_INVALID_RECORD(-0x7200 or -29184) during ssl handshake. There are several possible causes:

  • The task stack set for mbedTLS running is not enough. Increase task stack and try again.
  • MBEDTLS_SSL_MAX_CONTENT_LEN is not enough. Increase MBEDTLS_SSL_MAX_CONTENT_LEN to 16384 and try again.

When we have a build system like Yocto or Buildroot, cross compiling a CMake project is a simple task - We just need to create a simple CMake inherited recipe. If the SoC vendor only provides toolchain for you to cross compile a single CMake project, CMake toolchain file is a good approach.

Read more »

Sometimes we noticed that printf will only flush after there is a newline in the print string, this behavior is caused by stdout stream buffer, which is line buffered by default. This behavior has been mentioned in ISO C99 standard:

There are few options to make it to print immediately once you called it.

Read more »

SSH connection will automatically drop due to timeout if there is no operation for a period. To keep connection alive, we can config ssh client to send a keepalive periodically. In ~/.ssh/config, there is a parameter for this:

ServerAliveInterval 60

If we set this value to 60, SSH client will send a keepalive every 60 seconds.