XMOS FreeRTOS port documentation? Plus some questions

Technical questions regarding the XTC tools and programming with XMOS.
Post Reply
User avatar
aclassifier
Respected Member
Posts: 483
Joined: Wed Apr 25, 2012 8:52 pm
Contact:

XMOS FreeRTOS port documentation? Plus some questions

Post by aclassifier »

I see https://github.com/xmos/FreeRTOS pointing to several FreeRTOS documents.

I have not found any design/implementation XMOS documents.

It's possible to delve into the code, fair enough, but I would like something more high level.

If my questions below are easy to find out about for myself, then please tell me how. Install a port? I did try but it stopped up for me (here).

Something I am curious about:

Does everything FreeRTOS run on one logical thread? Scheduler and FreeRTOS libraries? (I infer that they do from lib_rtos_support). In xTimeComposer main, will then the FreeRTOS port and FreeRTOS user code then be par'ed on one core?

I think that SafeRTOS and OpenRTOS are related to FreeRTOS(?) I see that preemptive and cooperative scheduling has been discussed in those arenas [1]. How does the XMOS FreeRTOS port do scheduling?

I see that lib_i2c exists, unmodified from two years ago. So it may be used, par'ed on another logical thread.

Plus all my user code, old and new, running on other cores?

I assume that since FreeRTOS source must relate to interrupt, those may be connected to ports or chanends? Or interface calls? In other words, FreeRTOS code may block on standard XC?

Does FreeRTOS have dynamic updating of individual drivers/tasks, like Erlang?

[1] My SafeRTOS notes (started 2016)


--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
User avatar
aclassifier
Respected Member
Posts: 483
Joined: Wed Apr 25, 2012 8:52 pm
Contact:

Post by aclassifier »

Preemption

I see in FreeRTOS.h here that

Code: Select all

#ifndef configUSE_PREEMPTION
	#error Missing definition:  configUSE_PREEMPTION must be defined in FreeRTOSConfig.h as either 1 or 0.  See the Configuration section of the FreeRTOS API documentation for details.
#endif
But I cannot find the FreeRTOSConfig.h file. Where is it?

I then assume that would be preemption within the same core?

Update

I see in Amazon FreeRTOS that:
Securely connect, program, deploy, and manage low-power devices
FreeRTOS includes support for Transport Layer Security (TLS v1.2) to help your devices connect securely to AWS. You can also easily program commonly needed IoT capabilities into your device, including software libraries that help configure devices to a local network using common connectivity options like Wi-Fi or Ethernet, or connect to a mobile device using Bluetooth Low Energy. FreeRTOS also includes an over-the-air (OTA) update library to remotely update devices with feature enhancements or security patches and a code signing feature to ensure your device code is not compromised during deployment and OTA updates.
I then assume this is also present on the XMOS support for the xCORE-200?

How does the xcore.ai come into this picture?

I also assume that this is not a hot update, that the rest of the system is not running during the update?

Also, that the "low-level" XC code on the other cores are not upgradable?
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
User avatar
akp
XCore Expert
Posts: 578
Joined: Thu Nov 26, 2015 11:47 pm

Post by akp »

IF you want to see how the interrupts work you need to look at the lib_rtos_support https://github.com/xmos/lib_rtos_support and the lib_soc that's included therein. Essentially it's interrupting on channels.
User avatar
aclassifier
Respected Member
Posts: 483
Joined: Wed Apr 25, 2012 8:52 pm
Contact:

Post by aclassifier »

akp wrote: Sat Apr 11, 2020 4:02 pm Essentially it's interrupting on channels.
Great! Thanks!
--
Øyvind Teig
Trondheim (Norway)
https://www.teigfam.net/oyvind/home/
Post Reply