diff --git a/tools/oneclick/prestudy/YAML/py_mm_lib/peripheral_lib/field.py b/tools/oneclick/prestudy/YAML/py_mm_lib/peripheral_lib/field.py index 7d8b5f013efd64d99c47f92bae6397ffd153e266..2ad56dabbe0cd718028044440855547230a1994c 100644 --- a/tools/oneclick/prestudy/YAML/py_mm_lib/peripheral_lib/field.py +++ b/tools/oneclick/prestudy/YAML/py_mm_lib/peripheral_lib/field.py @@ -38,15 +38,15 @@ class Field(BaseObject): def __init__(self, name, settings=None): super().__init__() self.name(name) - self._valid_keys = ['number_of_fields', 'width', 'bit_offset', 'access_mode', 'side_effect', 'address_offset', + self._valid_keys = ['width', 'bit_offset', 'access_mode', 'side_effect', 'address_offset', 'number_of_fields', 'reset_value', 'software_value', 'radix', 'field_description'] - self._args.update({'number_of_fields' : DEFAULT_NUMBER_OF_FIELDS, - 'width' : DEFAULT_WIDTH, + self._args.update({'width' : DEFAULT_WIDTH, 'bit_offset' : DEFAULT_BIT_OFFSET, 'access_mode' : DEFAULT_ACCESS_MODE, 'side_effect' : DEFAULT_SIDE_EFFECT, 'address_offset' : DEFAULT_ADDRESS_OFFSET, + 'number_of_fields' : DEFAULT_NUMBER_OF_FIELDS, 'reset_value' : RESET_VALUE, 'software_value' : DEFAULT_SOFTWARE_VALUE, 'radix' : DEFAULT_RADIX, diff --git a/tools/oneclick/prestudy/YAML/py_mm_lib/peripheral_lib/register.py b/tools/oneclick/prestudy/YAML/py_mm_lib/peripheral_lib/register.py index dfb59b80f42ac277f8711d7e2de2aefb911c328b..5edf781bcd7ecb1da28c2ac693af70c68450a446 100644 --- a/tools/oneclick/prestudy/YAML/py_mm_lib/peripheral_lib/register.py +++ b/tools/oneclick/prestudy/YAML/py_mm_lib/peripheral_lib/register.py @@ -76,7 +76,8 @@ class Register(BaseObject): return n_words = 0 for field in self.fields.values(): - n_words += int(ceil(float(field.width()) / c_word_w)) * field.number_of_fields() + n_words += ceil_pow2(int(ceil(float(field.width()) / c_word_w)) * field.number_of_fields()) + logger.debug("n_words=%d", n_words) n_words = ceil_pow2(n_words) # round up to power of 2 self.set_kv('address_length', n_words) diff --git a/tools/oneclick/prestudy/YAML/py_mm_lib/rom_system.py b/tools/oneclick/prestudy/YAML/py_mm_lib/rom_system.py index af8ac70c0792746d8056e16f85bc7f71cd8fc964..533ca92bd6706132fe5feefe0d4ba5e957a80b1d 100644 --- a/tools/oneclick/prestudy/YAML/py_mm_lib/rom_system.py +++ b/tools/oneclick/prestudy/YAML/py_mm_lib/rom_system.py @@ -189,14 +189,7 @@ class RomSystem(object): for rkey, rval in peripheral.registers.items(): n_addresses = rval.get_kv('address_length') - #n_addresses = 0 - #n_words = 0 - #for fkey, fval in rval.fields.items(): - # n_words = max(n_words, int(ceil(float(fval.width()) / float(self.word_size)))) - # n_addresses = max(n_addresses, fval.address_offset()) -# - #n_addresses += 1 - nof_inst = rval.number_of_slaves() * peripheral.number_of_peripherals() + nof_inst = rval.number_of_slaves() * peripheral.number_of_peripherals() * len(rval.fields) if rval.user_defined_name() is not None: _name = rval.user_defined_name() else: