Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2019
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 66.48 KB | None | 0 0
  1. from collections import namedtuple, defaultdict
  2.  
  3.  
  4. __all__ = ["devices", "devices_by_signature"]
  5.  
  6.  
  7.  
  8. class MSP430Device(namedtuple("MSP430Device", (
  9.     "device", "jtag_id", "device_id", "ext_id",
  10.     "core", # '430', '430X', '430Xv2'
  11.     "type", # 'flash', 'fram'
  12.     "features", # [] of 'quick.{flash,sram,fram}.{r,w}', 'fast_flash', 'enhanced_verify'
  13. ))):
  14.  
  15.     __slot__ = ()
  16.  
  17.     def address_width(self):
  18.         if self.core in ("430X", "430Xv2"):
  19.             return 20
  20.         else:
  21.             return 16
  22.  
  23.     def is_430Xv2(self):
  24.         return self.core == '430Xv2'
  25.  
  26.     def is_flash(self):
  27.         return self.type == 'flash'
  28.  
  29.     def is_frame(self):
  30.         return self.type == 'fram'
  31.  
  32.     def has(self, feature):
  33.         return feature in self.features
  34.  
  35.     def __repr__(self):
  36.         return "MSP430Device(%(device)r, 0x%(jtag_id)02x, 0x%(device_id)04x, %(ext_id)s, core=%(core)r, type=%(type)r, features=%(features)r)" % {
  37.             'device': self.device,
  38.             'jtag_id': self.jtag_id,
  39.             'device_id': self.device_id,
  40.             'ext_id': ('0x%02x' % (self.ext_id,)) if (self.ext_id is not None) else 'None',
  41.             'core': self.core,
  42.             'type': self.type,
  43.             'features': self.features,
  44.         }
  45.  
  46.  
  47. devices = [
  48.     MSP430Device('AFE2xx',                           0x89, 0x0253, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  49.     MSP430Device('F11x1(A)',                         0x89, 0xf112, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  50.     MSP430Device('F11x2',                            0x89, 0x1132, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  51.     MSP430Device('F12x',                             0x89, 0xf123, None, core='430',    type='flash', features=['quick.flash.r'])
  52.     MSP430Device('F12x2',                            0x89, 0x1232, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  53.     MSP430Device('F13x, F14x, F14x1',                0x89, 0xf149, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  54.     MSP430Device('F15x, F16x',                       0x89, 0xf169, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  55.     MSP430Device('F161x',                            0x89, 0xf16c, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  56.     MSP430Device('F20x1',                            0x89, 0xf201, 0x01, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  57.     MSP430Device('F20x2',                            0x89, 0xf201, 0x02, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  58.     MSP430Device('F20x3',                            0x89, 0xf201, 0x03, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  59.     MSP430Device('F21x1',                            0x89, 0xf213, 0x01, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'enhanced_verify'])
  60.     MSP430Device('F21x2',                            0x89, 0xf213, 0x02, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash', 'enhanced_verify'])
  61.     MSP430Device('F22x2, F22x4, G2x44',              0x89, 0xf227, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash', 'enhanced_verify'])
  62.     MSP430Device('F23x, F24x, F24x1, F2410',         0x89, 0xf249, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash', 'enhanced_verify'])
  63.     MSP430Device('F23x0',                            0x89, 0xf237, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash', 'enhanced_verify'])
  64.     MSP430Device('F241x, F261x',                     0x89, 0xf26f, None, core='430X',   type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash', 'enhanced_verify'])
  65.     MSP430Device('F412, F413',                       0x89, 0xf413, None, core='430',    type='flash', features=['quick.flash.r'])
  66.     MSP430Device('F415, F417',                       0x89, 0xf427, 0x57, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  67.     MSP430Device('F41x2',                            0x89, 0x4152, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash', 'enhanced_verify'])
  68.     MSP430Device('F(E)42x',                          0x89, 0xf427, 0x45, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  69.     MSP430Device('F(E)42xA',                         0x89, 0x427a, 0x45, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  70.     MSP430Device('F(G)42x0',                         0x89, 0xf427, 0x47, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  71.     MSP430Device('F43x (80 pin)',                    0x89, 0xf437, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  72.     MSP430Device('F43x, F44x (100 pin)',             0x89, 0xf449, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  73.     MSP430Device('F471xx',                           0x89, 0xf47f, None, core='430X',   type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash', 'enhanced_verify'])
  74.     MSP430Device('F47xx',                            0x89, 0xf449, 0x02, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash', 'enhanced_verify'])
  75.     MSP430Device('FE42x2',                           0x89, 0x4252, 0x45, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  76.     MSP430Device('FG43x',                            0x89, 0xf439, 0x47, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  77.     MSP430Device('F(G)461x, F461x1',                 0x89, 0xf46f, 0x47, core='430X',   type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash', 'enhanced_verify'])
  78.     MSP430Device('F(G)47x',                          0x89, 0xf479, 0x47, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash', 'enhanced_verify'])
  79.     MSP430Device('FW428',                            0x89, 0xf429, 0x57, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  80.     MSP430Device('FW429',                            0x89, 0xf429, 0x57, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  81.     MSP430Device('FW42x',                            0x89, 0xf427, 0x57, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  82.     MSP430Device('G2x01, G2x11',                     0x89, 0xf201, 0x01, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  83.     MSP430Device('G2x21, G2x31',                     0x89, 0xf201, 0x02, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  84.     MSP430Device('G2xx2',                            0x89, 0x2452, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  85.     MSP430Device('G2xx3',                            0x89, 0x2553, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  86.     MSP430Device('G2xx5',                            0x89, 0x2955, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  87.     MSP430Device('TCH5E',                            0x89, 0x255c, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r', 'fast_flash'])
  88.     MSP430Device('CC430F5123',                       0x91, 0x3c81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  89.     MSP430Device('CC430F5125',                       0x91, 0x3b81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  90.     MSP430Device('CC430F5133',                       0x91, 0x5133, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  91.     MSP430Device('CC430F5135',                       0x91, 0x5135, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  92.     MSP430Device('CC430F5137',                       0x91, 0x5137, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  93.     MSP430Device('CC430F5143',                       0x91, 0x3a81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  94.     MSP430Device('CC430F5145',                       0x91, 0x3981, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  95.     MSP430Device('CC430F5147',                       0x91, 0x3881, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  96.     MSP430Device('CC430F6125',                       0x91, 0x6125, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  97.     MSP430Device('CC430F6126',                       0x91, 0x6126, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  98.     MSP430Device('CC430F6127',                       0x91, 0x6127, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  99.     MSP430Device('CC430F6135',                       0x91, 0x6135, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  100.     MSP430Device('CC430F6137',                       0x91, 0x6137, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  101.     MSP430Device('CC430F6143',                       0x91, 0x3781, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  102.     MSP430Device('CC430F6145',                       0x91, 0x3681, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  103.     MSP430Device('CC430F6147',                       0x91, 0x3581, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  104.     MSP430Device('MSP430F5131',                      0x91, 0x2680, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  105.     MSP430Device('MSP430F5132',                      0x91, 0x2880, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  106.     MSP430Device('MSP430F5151',                      0x91, 0x2a80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  107.     MSP430Device('MSP430F5152',                      0x91, 0x2c80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  108.     MSP430Device('MSP430F5171',                      0x91, 0x2e80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  109.     MSP430Device('MSP430F5172',                      0x91, 0x3080, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  110.     MSP430Device('MSP430F5212',                      0x91, 0x4081, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  111.     MSP430Device('MSP430F5213',                      0x91, 0x4181, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  112.     MSP430Device('MSP430F5214',                      0x91, 0x4281, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  113.     MSP430Device('MSP430F5217',                      0x91, 0x4581, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  114.     MSP430Device('MSP430F5218',                      0x91, 0x4681, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  115.     MSP430Device('MSP430F5219',                      0x91, 0x4781, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  116.     MSP430Device('MSP430F5222',                      0x91, 0x4a81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  117.     MSP430Device('MSP430F5223',                      0x91, 0x4b81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  118.     MSP430Device('MSP430F5224',                      0x91, 0x4c81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  119.     MSP430Device('MSP430F5227',                      0x91, 0x4f81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  120.     MSP430Device('MSP430F5228',                      0x91, 0x5081, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  121.     MSP430Device('MSP430F5229',                      0x91, 0x5181, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  122.     MSP430Device('MSP430F5232',                      0x91, 0xfa81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  123.     MSP430Device('MSP430F5234',                      0x91, 0xf981, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  124.     MSP430Device('MSP430F5237',                      0x91, 0xf881, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  125.     MSP430Device('MSP430F5239',                      0x91, 0xf781, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  126.     MSP430Device('MSP430F5242',                      0x91, 0xf681, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  127.     MSP430Device('MSP430F5244',                      0x91, 0xf581, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  128.     MSP430Device('MSP430F5247',                      0x91, 0xf481, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  129.     MSP430Device('MSP430F5249',                      0x91, 0xf381, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  130.     MSP430Device('MSP430F5252',                      0x91, 0x0682, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  131.     MSP430Device('MSP430F5253',                      0x91, 0x0582, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  132.     MSP430Device('MSP430F5254',                      0x91, 0x0482, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  133.     MSP430Device('MSP430F5255',                      0x91, 0x0382, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  134.     MSP430Device('MSP430F5256',                      0x91, 0x0282, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  135.     MSP430Device('MSP430F5257',                      0x91, 0x0182, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  136.     MSP430Device('MSP430F5258',                      0x91, 0x0082, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  137.     MSP430Device('MSP430F5259',                      0x91, 0xff81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  138.     MSP430Device('MSP430F5304',                      0x91, 0x1281, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  139.     MSP430Device('MSP430F5308',                      0x91, 0x1381, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  140.     MSP430Device('MSP430F5309',                      0x91, 0x1481, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  141.     MSP430Device('MSP430F5310',                      0x91, 0x1581, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  142.     MSP430Device('MSP430F5324',                      0x91, 0x1681, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  143.     MSP430Device('MSP430F5325',                      0x91, 0x1781, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  144.     MSP430Device('MSP430F5326',                      0x91, 0x1881, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  145.     MSP430Device('MSP430F5327',                      0x91, 0x1981, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  146.     MSP430Device('MSP430F5328',                      0x91, 0x1a81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  147.     MSP430Device('MSP430F5329',                      0x91, 0x1b81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  148.     MSP430Device('MSP430F5333',                      0x91, 0x2581, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  149.     MSP430Device('MSP430F5335',                      0x91, 0x2781, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  150.     MSP430Device('MSP430F5336',                      0x91, 0x2881, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  151.     MSP430Device('MSP430F5338',                      0x91, 0x2a81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  152.     MSP430Device('MSP430F5340',                      0x91, 0x1c81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  153.     MSP430Device('MSP430F5341',                      0x91, 0x1d81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  154.     MSP430Device('MSP430F5342',                      0x91, 0x1e81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  155.     MSP430Device('MSP430F5357',                      0x91, 0x3481, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  156.     MSP430Device('MSP430F5358',                      0x91, 0x3381, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  157.     MSP430Device('MSP430F5359',                      0x91, 0x3281, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  158.     MSP430Device('MSP430F5418',                      0x91, 0x5418, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  159.     MSP430Device('MSP430F5418A',                     0x91, 0x0080, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  160.     MSP430Device('MSP430F5419',                      0x91, 0x5419, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  161.     MSP430Device('MSP430F5419A',                     0x91, 0x0180, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  162.     MSP430Device('MSP430F5435',                      0x91, 0x5435, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  163.     MSP430Device('MSP430F5435A',                     0x91, 0x0280, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  164.     MSP430Device('MSP430F5436',                      0x91, 0x5436, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  165.     MSP430Device('MSP430F5436A',                     0x91, 0x0380, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  166.     MSP430Device('MSP430F5437',                      0x91, 0x5437, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  167.     MSP430Device('MSP430F5437A',                     0x91, 0x0480, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  168.     MSP430Device('MSP430F5438',                      0x91, 0x5438, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  169.     MSP430Device('MSP430F5438A',                     0x91, 0x0580, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  170.     MSP430Device('MSP430F5500',                      0x91, 0x3b80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  171.     MSP430Device('MSP430F5501',                      0x91, 0x3280, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  172.     MSP430Device('MSP430F5502',                      0x91, 0x3380, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  173.     MSP430Device('MSP430F5503',                      0x91, 0x3480, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  174.     MSP430Device('MSP430F5504',                      0x91, 0x3580, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  175.     MSP430Device('MSP430F5505',                      0x91, 0x3680, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  176.     MSP430Device('MSP430F5506',                      0x91, 0x3780, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  177.     MSP430Device('MSP430F5507',                      0x91, 0x3880, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  178.     MSP430Device('MSP430F5508',                      0x91, 0x3980, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  179.     MSP430Device('MSP430F5509',                      0x91, 0x3a80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  180.     MSP430Device('MSP430F5510',                      0x91, 0x3180, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  181.     MSP430Device('MSP430F5513',                      0x91, 0x5513, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  182.     MSP430Device('MSP430F5514',                      0x91, 0x5514, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  183.     MSP430Device('MSP430F5515',                      0x91, 0x5515, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  184.     MSP430Device('MSP430F5517',                      0x91, 0x5517, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  185.     MSP430Device('MSP430F5519',                      0x91, 0x5519, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  186.     MSP430Device('MSP430F5521',                      0x91, 0x5521, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  187.     MSP430Device('MSP430F5522',                      0x91, 0x5522, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  188.     MSP430Device('MSP430F5524',                      0x91, 0x5524, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  189.     MSP430Device('MSP430F5525',                      0x91, 0x5525, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  190.     MSP430Device('MSP430F5526',                      0x91, 0x5526, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  191.     MSP430Device('MSP430F5527',                      0x91, 0x5527, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  192.     MSP430Device('MSP430F5528',                      0x91, 0x5528, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  193.     MSP430Device('MSP430F5529',                      0x91, 0x5529, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  194.     MSP430Device('MSP430F5630',                      0x91, 0x3c80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  195.     MSP430Device('MSP430F5631',                      0x91, 0x3e80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  196.     MSP430Device('MSP430F5632',                      0x91, 0x4080, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  197.     MSP430Device('MSP430F5633',                      0x91, 0x4280, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  198.     MSP430Device('MSP430F5634',                      0x91, 0x4480, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  199.     MSP430Device('MSP430F5635',                      0x91, 0x0e80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  200.     MSP430Device('MSP430F5636',                      0x91, 0x1080, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  201.     MSP430Device('MSP430F5637',                      0x91, 0x1280, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  202.     MSP430Device('MSP430F5638',                      0x91, 0x1480, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  203.     MSP430Device('MSP430F5658',                      0x91, 0x3181, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  204.     MSP430Device('MSP430F5659',                      0x91, 0x3081, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  205.     MSP430Device('MSP430F6433',                      0x91, 0x1f81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  206.     MSP430Device('MSP430F6435',                      0x91, 0x2181, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  207.     MSP430Device('MSP430F6436',                      0x91, 0x2281, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  208.     MSP430Device('MSP430F6438',                      0x91, 0x2481, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  209.     MSP430Device('MSP430F6458',                      0x91, 0x2e81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  210.     MSP430Device('MSP430F6459',                      0x91, 0x2d81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  211.     MSP430Device('MSP430F6630',                      0x91, 0x4680, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  212.     MSP430Device('MSP430F6631',                      0x91, 0x4880, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  213.     MSP430Device('MSP430F6632',                      0x91, 0x4a80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  214.     MSP430Device('MSP430F6633',                      0x91, 0x4c80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  215.     MSP430Device('MSP430F6634',                      0x91, 0x4e80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  216.     MSP430Device('MSP430F6635',                      0x91, 0x1680, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  217.     MSP430Device('MSP430F6636',                      0x91, 0x1880, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  218.     MSP430Device('MSP430F6637',                      0x91, 0x1a80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  219.     MSP430Device('MSP430F6638',                      0x91, 0x1c80, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  220.     MSP430Device('MSP430F6658',                      0x91, 0x2c81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  221.     MSP430Device('MSP430F6659',                      0x91, 0x2b81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  222.     MSP430Device('MSP430F6700',                      0x91, 0x5480, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  223.     MSP430Device('MSP430F6701',                      0x91, 0x5580, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  224.     MSP430Device('MSP430F6702',                      0x91, 0x5680, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  225.     MSP430Device('MSP430F6703',                      0x91, 0x5780, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  226.     MSP430Device('MSP430F6720',                      0x91, 0x5880, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  227.     MSP430Device('MSP430F6720A',                     0x91, 0x7682, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  228.     MSP430Device('MSP430F6721',                      0x91, 0x5980, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  229.     MSP430Device('MSP430F6721A',                     0x91, 0x7782, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  230.     MSP430Device('MSP430F6722',                      0x91, 0x6080, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  231.     MSP430Device('MSP430F6723',                      0x91, 0x6180, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  232.     MSP430Device('MSP430F6723A',                     0x91, 0x7982, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  233.     MSP430Device('MSP430F6724',                      0x91, 0x6d81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  234.     MSP430Device('MSP430F6724A',                     0x91, 0x7a82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  235.     MSP430Device('MSP430F6725',                      0x91, 0x6e81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  236.     MSP430Device('MSP430F6725A',                     0x91, 0x7b82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  237.     MSP430Device('MSP430F6726',                      0x91, 0x6f81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  238.     MSP430Device('MSP430F6726A',                     0x91, 0x7c82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  239.     MSP430Device('MSP430F6730',                      0x91, 0x6280, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  240.     MSP430Device('MSP430F6730A',                     0x91, 0x8082, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  241.     MSP430Device('MSP430F6731',                      0x91, 0x6380, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  242.     MSP430Device('MSP430F6731A',                     0x91, 0x8182, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  243.     MSP430Device('MSP430F6732',                      0x91, 0x6480, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  244.     MSP430Device('MSP430F6733',                      0x91, 0x6580, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  245.     MSP430Device('MSP430F6733A',                     0x91, 0x8382, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  246.     MSP430Device('MSP430F6734',                      0x91, 0x6a81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  247.     MSP430Device('MSP430F6734A',                     0x91, 0x8482, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  248.     MSP430Device('MSP430F6735',                      0x91, 0x6b81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  249.     MSP430Device('MSP430F6735A',                     0x91, 0x8582, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  250.     MSP430Device('MSP430F6736',                      0x91, 0x6c81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  251.     MSP430Device('MSP430F6736A',                     0x91, 0x8682, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  252.     MSP430Device('MSP430F6745',                      0x91, 0x8881, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  253.     MSP430Device('MSP430F67451',                     0x91, 0x9781, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  254.     MSP430Device('MSP430F67451A',                    0x91, 0x2582, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  255.     MSP430Device('MSP430F6745A',                     0x91, 0x1682, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  256.     MSP430Device('MSP430F6746',                      0x91, 0x8981, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  257.     MSP430Device('MSP430F67461',                     0x91, 0x9881, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  258.     MSP430Device('MSP430F67461A',                    0x91, 0x2682, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  259.     MSP430Device('MSP430F6746A',                     0x91, 0x1782, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  260.     MSP430Device('MSP430F6747',                      0x91, 0x8a81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  261.     MSP430Device('MSP430F67471',                     0x91, 0x9981, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  262.     MSP430Device('MSP430F67471A',                    0x91, 0x2782, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  263.     MSP430Device('MSP430F6747A',                     0x91, 0x1882, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  264.     MSP430Device('MSP430F6748',                      0x91, 0x8b81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  265.     MSP430Device('MSP430F67481',                     0x91, 0x9a81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  266.     MSP430Device('MSP430F67481A',                    0x91, 0x2882, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  267.     MSP430Device('MSP430F6748A',                     0x91, 0x1982, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  268.     MSP430Device('MSP430F6749',                      0x91, 0x8c81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  269.     MSP430Device('MSP430F67491',                     0x91, 0x9b81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  270.     MSP430Device('MSP430F67491A',                    0x91, 0x2982, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  271.     MSP430Device('MSP430F6749A',                     0x91, 0x1a82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  272.     MSP430Device('MSP430F67621',                     0x91, 0x3882, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  273.     MSP430Device('MSP430F67621A',                    0x91, 0x8782, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  274.     MSP430Device('MSP430F67641',                     0x91, 0x3982, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  275.     MSP430Device('MSP430F67641A',                    0x91, 0x8882, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  276.     MSP430Device('MSP430F6765',                      0x91, 0x8d81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  277.     MSP430Device('MSP430F67651',                     0x91, 0x9c81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  278.     MSP430Device('MSP430F67651A',                    0x91, 0x2a82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  279.     MSP430Device('MSP430F6765A',                     0x91, 0x1b82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  280.     MSP430Device('MSP430F6766',                      0x91, 0x8e81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  281.     MSP430Device('MSP430F67661',                     0x91, 0x9d81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  282.     MSP430Device('MSP430F67661A',                    0x91, 0x2b82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  283.     MSP430Device('MSP430F6766A',                     0x91, 0x1c82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  284.     MSP430Device('MSP430F6767',                      0x91, 0x8f81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  285.     MSP430Device('MSP430F67671',                     0x91, 0x9e81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  286.     MSP430Device('MSP430F67671A',                    0x91, 0x2c82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  287.     MSP430Device('MSP430F6767A',                     0x91, 0x1d82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  288.     MSP430Device('MSP430F6768',                      0x91, 0x9081, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  289.     MSP430Device('MSP430F67681',                     0x91, 0x9f81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  290.     MSP430Device('MSP430F67681A',                    0x91, 0x2d82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  291.     MSP430Device('MSP430F6768A',                     0x91, 0x1e82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  292.     MSP430Device('MSP430F6769',                      0x91, 0x9181, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  293.     MSP430Device('MSP430F67691',                     0x91, 0xa081, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  294.     MSP430Device('MSP430F67691A',                    0x91, 0x2e82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  295.     MSP430Device('MSP430F6769A',                     0x91, 0x1f82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  296.     MSP430Device('MSP430F6775',                      0x91, 0x9281, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  297.     MSP430Device('MSP430F67751',                     0x91, 0xa181, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  298.     MSP430Device('MSP430F67751A',                    0x91, 0x2f82, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  299.     MSP430Device('MSP430F6775A',                     0x91, 0x2082, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  300.     MSP430Device('MSP430F6776',                      0x91, 0x9381, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  301.     MSP430Device('MSP430F67761',                     0x91, 0xa281, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  302.     MSP430Device('MSP430F67761A',                    0x91, 0x3082, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  303.     MSP430Device('MSP430F6776A',                     0x91, 0x2182, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  304.     MSP430Device('MSP430F6777',                      0x91, 0x9481, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  305.     MSP430Device('MSP430F67771',                     0x91, 0xa381, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  306.     MSP430Device('MSP430F67771A',                    0x91, 0x3182, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  307.     MSP430Device('MSP430F6777A',                     0x91, 0x2282, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  308.     MSP430Device('MSP430F6778',                      0x91, 0x9581, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  309.     MSP430Device('MSP430F67781',                     0x91, 0xa481, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  310.     MSP430Device('MSP430F67781A',                    0x91, 0x3282, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  311.     MSP430Device('MSP430F6778A',                     0x91, 0x2382, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  312.     MSP430Device('MSP430F6779',                      0x91, 0x9681, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  313.     MSP430Device('MSP430F67791',                     0x91, 0xa581, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  314.     MSP430Device('MSP430F67791A',                    0x91, 0x3382, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  315.     MSP430Device('MSP430F6779A',                     0x91, 0x2482, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  316.     MSP430Device('MSP430FG6425',                     0x91, 0x3782, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  317.     MSP430Device('MSP430FG6426',                     0x91, 0x3682, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  318.     MSP430Device('MSP430FG6625',                     0x91, 0x3582, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  319.     MSP430Device('MSP430FG6626',                     0x91, 0x3482, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  320.     MSP430Device('MSP430SL5438A',                    0x91, 0xee81, None, core='430Xv2', type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  321.     MSP430Device('MSP430FR2000',                     0x98, 0x2083, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  322.     MSP430Device('MSP430FR2032',                     0x98, 0x7882, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  323.     MSP430Device('MSP430FR2033',                     0x98, 0x7582, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  324.     MSP430Device('MSP430FR2100',                     0x98, 0x2183, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  325.     MSP430Device('MSP430FR2110',                     0x98, 0xfb82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  326.     MSP430Device('MSP430FR2111',                     0x98, 0xfa82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  327.     MSP430Device('MSP430FR2153',                     0x98, 0x1d83, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  328.     MSP430Device('MSP430FR2155',                     0x98, 0x1e83, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  329.     MSP430Device('MSP430FR2310',                     0x98, 0xf182, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  330.     MSP430Device('MSP430FR2311',                     0x98, 0xf082, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  331.     MSP430Device('MSP430FR2353',                     0x98, 0x0d83, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  332.     MSP430Device('MSP430FR2355',                     0x98, 0x0c83, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  333.     MSP430Device('MSP430FR2422',                     0x98, 0x1183, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  334.     MSP430Device('MSP430FR2433',                     0x98, 0x4082, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  335.     MSP430Device('MSP430FR2475',                     0x98, 0x2b83, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  336.     MSP430Device('MSP430FR2476',                     0x98, 0x2a83, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  337.     MSP430Device('MSP430FR2512',                     0x98, 0x1c83, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  338.     MSP430Device('MSP430FR2522',                     0x98, 0x1083, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  339.     MSP430Device('MSP430FR2532',                     0x98, 0x3f82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  340.     MSP430Device('MSP430FR2533',                     0x98, 0x3d82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  341.     MSP430Device('MSP430FR2632',                     0x98, 0x3e82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  342.     MSP430Device('MSP430FR2633',                     0x98, 0x3c82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  343.     MSP430Device('MSP430FR2675',                     0x98, 0x2983, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  344.     MSP430Device('MSP430FR2676',                     0x98, 0x2883, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  345.     MSP430Device('MSP430FR4131',                     0x98, 0xf281, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  346.     MSP430Device('MSP430FR4132',                     0x98, 0xf181, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  347.     MSP430Device('MSP430FR4133',                     0x98, 0xf081, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  348.     MSP430Device('MSP430FR5041',                     0x99, 0x0f83, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  349.     MSP430Device('MSP430FR5043',                     0x99, 0x1783, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  350.     MSP430Device('MSP430FR50431',                    0x99, 0x1883, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  351.     MSP430Device('MSP430FR5720',                     0x91, 0x7081, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  352.     MSP430Device('MSP430FR5721',                     0x91, 0x7780, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  353.     MSP430Device('MSP430FR5722',                     0x91, 0x7181, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  354.     MSP430Device('MSP430FR5723',                     0x91, 0x7281, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  355.     MSP430Device('MSP430FR5724',                     0x91, 0x7381, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  356.     MSP430Device('MSP430FR5725',                     0x91, 0x7880, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  357.     MSP430Device('MSP430FR5726',                     0x91, 0x7481, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  358.     MSP430Device('MSP430FR5727',                     0x91, 0x7980, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  359.     MSP430Device('MSP430FR5728',                     0x91, 0x7a80, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  360.     MSP430Device('MSP430FR5729',                     0x91, 0x7b80, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  361.     MSP430Device('MSP430FR5730',                     0x91, 0x7c80, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  362.     MSP430Device('MSP430FR5731',                     0x91, 0x7e80, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  363.     MSP430Device('MSP430FR5732',                     0x91, 0x7581, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  364.     MSP430Device('MSP430FR5733',                     0x91, 0x7f80, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  365.     MSP430Device('MSP430FR5734',                     0x91, 0x0081, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  366.     MSP430Device('MSP430FR5735',                     0x91, 0x7681, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  367.     MSP430Device('MSP430FR5736',                     0x91, 0x7781, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  368.     MSP430Device('MSP430FR5737',                     0x91, 0x0181, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  369.     MSP430Device('MSP430FR5738',                     0x91, 0x0281, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  370.     MSP430Device('MSP430FR5739',                     0x91, 0x0381, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  371.     MSP430Device('MSP430FR5847',                     0x99, 0x5381, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  372.     MSP430Device('MSP430FR5848',                     0x99, 0x5481, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  373.     MSP430Device('MSP430FR5849',                     0x99, 0x5581, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  374.     MSP430Device('MSP430FR5857',                     0x99, 0x5781, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  375.     MSP430Device('MSP430FR5858',                     0x99, 0x5881, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  376.     MSP430Device('MSP430FR5859',                     0x99, 0x5981, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  377.     MSP430Device('MSP430FR5867',                     0x99, 0x5b81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  378.     MSP430Device('MSP430FR5868',                     0x99, 0x5c81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  379.     MSP430Device('MSP430FR5869',                     0x99, 0x5d81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  380.     MSP430Device('MSP430FR5870',                     0x99, 0x5e82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  381.     MSP430Device('MSP430FR5872',                     0x99, 0x6082, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  382.     MSP430Device('MSP430FR5887',                     0x99, 0xc181, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  383.     MSP430Device('MSP430FR5888',                     0x99, 0xc281, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  384.     MSP430Device('MSP430FR5889',                     0x99, 0xc381, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  385.     MSP430Device('MSP430FR5922 (DGG package)',       0x99, 0x6182, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  386.     MSP430Device('MSP430FR5922 (PM or RGC package)', 0x99, 0x6282, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  387.     MSP430Device('MSP430FR5947',                     0x99, 0x5f81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  388.     MSP430Device('MSP430FR5948',                     0x99, 0x6081, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  389.     MSP430Device('MSP430FR5949',                     0x99, 0x6181, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  390.     MSP430Device('MSP430FR5957',                     0x99, 0x6381, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  391.     MSP430Device('MSP430FR5958',                     0x99, 0x6481, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  392.     MSP430Device('MSP430FR5959',                     0x99, 0x6581, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  393.     MSP430Device('MSP430FR5962',                     0x99, 0xa682, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  394.     MSP430Device('MSP430FR5964',                     0x99, 0xa482, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  395.     MSP430Device('MSP430FR5967',                     0x99, 0x6781, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  396.     MSP430Device('MSP430FR5968',                     0x99, 0x6881, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  397.     MSP430Device('MSP430FR5969',                     0x99, 0x6981, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  398.     MSP430Device('MSP430FR5970',                     0x99, 0x5b82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  399.     MSP430Device('MSP430FR5972',                     0x99, 0x5d82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  400.     MSP430Device('MSP430FR5986',                     0x99, 0xdf81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  401.     MSP430Device('MSP430FR5987',                     0x99, 0xa981, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  402.     MSP430Device('MSP430FR5988',                     0x99, 0xaa81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  403.     MSP430Device('MSP430FR5989',                     0x99, 0xab81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  404.     MSP430Device('MSP430FR5992',                     0x99, 0xa382, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  405.     MSP430Device('MSP430FR5994',                     0x99, 0xa182, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  406.     MSP430Device('MSP430FR59941',                    0x99, 0xa282, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  407.     MSP430Device('MSP430FR6035',                     0x99, 0xed82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  408.     MSP430Device('MSP430FR60371',                    0x99, 0xef82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  409.     MSP430Device('MSP430FR6037',                     0x99, 0xec82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  410.     MSP430Device('MSP430FR6041',                     0x99, 0x1483, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  411.     MSP430Device('MSP430FR6043',                     0x99, 0x1283, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  412.     MSP430Device('MSP430FR60431',                    0x99, 0x1a83, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  413.     MSP430Device('MSP430FR6045',                     0x99, 0xeb82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  414.     MSP430Device('MSP430FR60471',                    0x99, 0xee82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  415.     MSP430Device('MSP430FR6047',                     0x99, 0xea82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  416.     MSP430Device('MSP430FR6820 (DGG package)',       0x99, 0x5582, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  417.     MSP430Device('MSP430FR6820 (PM or RGC package)', 0x99, 0x5682, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  418.     MSP430Device('MSP430FR6822 (DGG package)',       0x99, 0x5982, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  419.     MSP430Device('MSP430FR6822 (PM or RGC package)', 0x99, 0x5a82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  420.     MSP430Device('MSP430FR6870',                     0x99, 0x4c82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  421.     MSP430Device('MSP430FR6872',                     0x99, 0x4e82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  422.     MSP430Device('MSP430FR6877',                     0x99, 0xc481, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  423.     MSP430Device('MSP430FR6879',                     0x99, 0xc681, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  424.     MSP430Device('MSP430FR6887',                     0x99, 0xbe81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  425.     MSP430Device('MSP430FR6888',                     0x99, 0xbf81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  426.     MSP430Device('MSP430FR6889',                     0x99, 0xc081, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  427.     MSP430Device('MSP430FR6920 (DGG package)',       0x99, 0x4f82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  428.     MSP430Device('MSP430FR6920 (PM or RGC package)', 0x99, 0x5082, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  429.     MSP430Device('MSP430FR6922 (DGG package)',       0x99, 0x5382, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  430.     MSP430Device('MSP430FR6922 (PM or RGC package)', 0x99, 0x5482, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  431.     MSP430Device('MSP430FR6927',                     0x99, 0xb281, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  432.     MSP430Device('MSP430FR6928',                     0x99, 0xb381, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  433.     MSP430Device('MSP430FR6970',                     0x99, 0x4982, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  434.     MSP430Device('MSP430FR6972',                     0x99, 0x4b82, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  435.     MSP430Device('MSP430FR6977',                     0x99, 0xac81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  436.     MSP430Device('MSP430FR6979',                     0x99, 0xae81, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  437.     MSP430Device('MSP430FR6987',                     0x99, 0xa681, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  438.     MSP430Device('MSP430FR6988',                     0x99, 0xa781, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  439.     MSP430Device('MSP430FR6989',                     0x99, 0xa881, None, core='430Xv2', type='fram',  features=['quick.sram.r', 'quick.sram.w', 'quick.fram.r', 'quick.fram.w'])
  440.     MSP430Device('MSP430i2020',                      0x89, 0x4020, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  441.     MSP430Device('MSP430i2021',                      0x89, 0x4020, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  442.     MSP430Device('MSP430i2030',                      0x89, 0x4020, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  443.     MSP430Device('MSP430i2031',                      0x89, 0x4020, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  444.     MSP430Device('MSP430i2040',                      0x89, 0x4020, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  445.     MSP430Device('MSP430i2041',                      0x89, 0x4020, None, core='430',    type='flash', features=['quick.sram.r', 'quick.sram.w', 'quick.flash.r'])
  446. ]
  447.  
  448. #devices_by_signature = defaultdict(lambda: None,
  449. #    ((device.signature, device) for device in devices))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement