{'fraction_non_alphanumeric': 0.023762376237623763, 'fraction_numerical': 0.0039603960396039604, 'mean_word_length': 5.924657534246576, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Adapting FreeRTOS for multicores: an experience report

Multicore processors are ubiquitous. Their use in embedded systems is growing rapidly, and given the constraints on uniprocessor clock speeds, their importance in meeting the demands of increasingly processor‐intensive embedded applications cannot be understated. To harness this potential, system designers need to have available to them embedded operating systems with built‐in multicore support for widely available embedded hardware. This paper documents our experience of adapting FreeRTOS, a popular embedded real‐time operating system, to support multiple processors. A working multicore version of FreeRTOS that is able to schedule tasks on multiple processors as well as provide full mutual‐exclusion support for use in concurrent applications is presented. Mutual exclusion is achieved in an almost completely platform‐agnostic manner, preserving one of FreeRTOS's most attractive features: portability. Copyright © 2013 John Wiley & Sons, Ltd.