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.

cc3200

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().

Gửi phản hồ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:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s