cc3200 paho client breaks freertos task scheduling

Paho MQTT client already provides an adaptation layer for CC3200 at MQTTClient-C/src/cc3200. In basic, the embedded-C Paho requires 2 resources from the device: timer and socket.


The CC3200 porting runs out of the box; however, when you run with FreeRTOS, the task scheduling of the OS may broken.

Why? Look at MQTTCC3200.c, we find that the timer is got from Systick interrupt handling, but Systick is occupied already for FreeRTOS scheduling. It seems that most of Cortex M3/M4 FreeRTOS use Systick for kernel timing. Good practice is to avoid the use of it in app layer.

Work around? Need timer? Get from OS kernel itself, which retrieve from Systick,  at xTaskGetTickCount().

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập: Logo

Bạn đang bình luận bằng tài khoản Đăng xuất /  Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )


Connecting to %s