Hi, After the verification of the device files, next step: Enumerate all the devices! Where should the naming schema of the devices be stored? At the moment there have two places: - platform_tools.py Defines how the device name is mapped to the name of the XML device file. This is used to find the matching XML file. - device_identifier.py Separates the device name into platform, family etc. Using the name of the device file makes the definitions inside the XML file redundant. I'm actually not sure whether those are actually used somewhere. I would like to get the platform generator independent from the actual device being built. Or at least reduce the number of places where something needs to be edited to support a new device/family. One possibility would be to store the naming schema inside the device file. That would require to parse all available device files to find the matching one. Then again it allows to remove the big chunk of case statements in device_identifier.py and it would require to only add a new device file without touching the Python files. Something like (for stm32): <device-name>${platform}f${name}${pin_id}${size_id}</device-name> or (at90) <device-name>${family}${type}${name}</device-name> or (atmega) <device-name>at${family}${name}${type}</device-name> Interestingly name and type swap between at90 and atmega. What do you think? Btw. according to the device files xpcc supports 573 different targets at the moment :)
Could we have a base schema and then "specialize" that for the architectures?
That is possible, but a bit difficult. Inheritance is supported on tag level, but not on schema level. With that most of the schema has to be rewritten for that. Cheers, Fabian PS: (...)/platform/devices/avr/at90646_647_1286_1287-usb.xml looks broken with flash, ram and eeprom being defined multiple times with different values without any selector.