Re: Is the devicetree in zephyr sdk supports the dynamic running time flow control ?

Christopher Friedt

On Wed., Nov. 20, 2019, 6:11 a.m. "曹子龙, <caozilong@...> wrote:
but in zephyr sdk, the dts are commpiled to a intermidate dts script file, whi
is this right?  and is there anyway to get the configuration in runtime in zephyr?

Personally, I think that the build-time / compile-time DeviceTree usage in Zephyr is actually pretty elegant.

However, there is nothing stopping anyone from adding a libfdt to Zephyr for runtime examination of device tree binaries. It's just not as common to do so on a microcontroller platform.

Once you have the .dtb, you can quite easily convert it to a C array using something like xxd.

I would strongly encourage gzip compression to be used for compressing the .dtb though (assuming it was constant data and the dtb was only there for examination). Otherwise it will take up precious code space. At least if memory is dynamically allocated for the uncompressed dtb it can be freed and reused later.

Due to Zephyr's conversion of DTB data to C preprocessor symbols, I do not see live device tree modification being a thing that will be supported in Zephyr anytime soon.

Join to automatically receive all group messages.