Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New Kinetis targets and some fixes #302

Merged
merged 7 commits into from
Jul 8, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added binaries/l1_k28f.bin
Binary file not shown.
Binary file added binaries/l1_k82f.bin
Binary file not shown.
Binary file added binaries/l1_kl82z.bin
Binary file not shown.
Binary file added binaries/l1_kw41z.bin
Binary file not shown.
9 changes: 7 additions & 2 deletions pyOCD/board/mbed_board.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,19 @@ def __init__(self, name, target, binary):
#
# Board ID Board Name Target Test Binary
"0200": BoardInfo( "FRDM-KL25Z", "kl25z", "l1_kl25z.bin" ),
"0201": BoardInfo( "FRDM-KW41Z", "kw41z4", "l1_kw41z4.bin" ),
"0202": BoardInfo( "USB-KW41Z", "kw41z4", "l1_kw41z4.bin" ),
"0203": BoardInfo( "TWR-KL28Z72M", "kl28z", "l1_kl28z.bin", ),
"0205": BoardInfo( "FRDM-KL28Z", "kl28z", "l1_kl28z.bin", ),
"0215": BoardInfo( "FRDM-KL28ZEM", "kl28z", "l1_kl28z.bin", ),
"0206": BoardInfo( "TWR-KE18F", "ke18f16", "l1_ke18f16.bin", ),
"0210": BoardInfo( "FRDM-KL05Z", "kl05z", "l1_kl05z.bin", ),
"0213": BoardInfo( "FRDM-KE15Z", "ke15z7", "l1_ke15z7.bin", ),
"0214": BoardInfo( "Hexiwear", "k64f", "l1_k64f.bin", ),
"0215": BoardInfo( "HVP-KE18F", "ke18f16", "l1_ke18f16.bin", ),
"0216": BoardInfo( "HVP-KE18F", "ke18f16", "l1_ke18f16.bin", ),
"0217": BoardInfo( "FRDM-K82F", "k82f25615", "l1_k82f.bin", ),
"0220": BoardInfo( "FRDM-KL46Z", "kl46z", "l1_kl46z.bin", ),
"0224": BoardInfo( "FRDM-K28F", "k28f15", "l1_k28f.bin", ),
"0230": BoardInfo( "FRDM-K20D50M", "k20d50m", "l1_k20d50m.bin", ),
"0231": BoardInfo( "FRDM-K22F", "k22f", "l1_k22f.bin", ),
"0240": BoardInfo( "FRDM-K64F", "k64f", "l1_k64f.bin", ),
Expand All @@ -49,13 +54,13 @@ def __init__(self, name, target, binary):
"0261": BoardInfo( "FRDM-KL27Z", "kl27z4", "l1_kl27z.bin", ),
"0262": BoardInfo( "FRDM-KL43Z", "kl43z4", "l1_kl26z.bin", ),
"0290": BoardInfo( "FRDM-KW40Z", "kw40z4", "l1_kw40z.bin", ),
"0291": BoardInfo( "FRDM-KL82Z", "kl82z7", "l1_kl82z.bin", ),
"0298": BoardInfo( "FRDM-KV10Z", "kv10z7", "l1_kl25z.bin" ),
"0300": BoardInfo( "TWR-KV11Z75M", "kv11z7", "l1_kl25z.bin" ),
"0311": BoardInfo( "FRDM-K66F", "k66f18", "l1_k66f.bin", ),
"0320": BoardInfo( "FRDM-KW01Z9032", "kw01z4", "l1_kl26z.bin" ),
"0321": BoardInfo( "USB-KW01Z", "kw01z4", "l1_kl25z.bin" ),
"0324": BoardInfo( "USB-KW40Z", "kw40z4", "l1_kl25z.bin" ),
"0340": BoardInfo( "FRDM-K82F", "k82f25615", "l1_k64f.bin", ),
"0400": BoardInfo( "maxwsnenv", "maxwsnenv", "l1_maxwsnenv.bin", ),
"0405": BoardInfo( "max32600mbed", "max32600mbed", "l1_max32600mbed.bin", ),
"0824": BoardInfo( "LPCXpresso824-MAX", "lpc824", "l1_lpc824.bin", ),
Expand Down
12 changes: 12 additions & 0 deletions pyOCD/target/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,15 @@
import target_MKL28Z512xxx7
import target_MKL43Z256xxx4
import target_MKL46Z256xxx4
import target_MKL82Z128xxx7
import target_MKV10Z128xxx7
import target_MKV11Z128xxx7
import target_MKW01Z128xxx4
import target_MKW40Z160xxx4
import target_MKW41Z512xxx4
import target_MK22FN1M0Axxx12
import target_MK22FN512xxx12
import target_MK28FN2M0xxx15
import target_MK64FN1M0xxx12
import target_MK66FN2M0xxx18
import target_MK82FN256xxx15
Expand Down Expand Up @@ -67,12 +71,16 @@
'kl28z': target_MKL28Z512xxx7.KL28x,
'kl43z4': target_MKL43Z256xxx4.KL43Z4,
'kl46z': target_MKL46Z256xxx4.KL46Z,
'kl82z7': target_MKL82Z128xxx7.KL82Z7,
'kv10z7': target_MKV10Z128xxx7.KV10Z7,
'kv11z7': target_MKV11Z128xxx7.KV11Z7,
'kw01z4': target_MKW01Z128xxx4.KW01Z4,
'kw40z4': target_MKW40Z160xxx4.KW40Z4,
'kw41z4': target_MKW41Z512xxx4.KW41Z4,
'k20d50m': target_MK20DX128xxx5.K20D50M,
'k22fa12': target_MK22FN1M0Axxx12.K22FA12,
'k22f': target_MK22FN512xxx12.K22F,
'k28f15': target_MK28FN2M0xxx15.K28F15,
'k64f': target_MK64FN1M0xxx12.K64F,
'k66f18': target_MK66FN2M0xxx18.K66F18,
'k82f25615': target_MK82FN256xxx15.K82F25615,
Expand Down Expand Up @@ -108,12 +116,16 @@
'kl28z': target_MKL28Z512xxx7.Flash_kl28z,
'kl43z4': target_MKL43Z256xxx4.Flash_kl43z4,
'kl46z': target_MKL46Z256xxx4.Flash_kl46z,
'kl82z7': target_MKL82Z128xxx7.Flash_mkl82z7,
'kv10z7': target_MKV10Z128xxx7.Flash_kv10z7,
'kv11z7': target_MKV11Z128xxx7.Flash_kv11z7,
'kw01z4': target_MKW01Z128xxx4.Flash_kw01z4,
'kw40z4': target_MKW40Z160xxx4.Flash_kw40z4,
'kw41z4': target_MKW41Z512xxx4.Flash_kw41z4,
'k20d50m': target_MK20DX128xxx5.Flash_k20d50m,
'k22fa12': target_MK22FN1M0Axxx12.Flash_k22fa12,
'k22f': target_MK22FN512xxx12.Flash_k22f,
'k28f15': target_MK28FN2M0xxx15.Flash_k28f15,
'k64f': target_MK64FN1M0xxx12.Flash_k64f,
'k66f18': target_MK66FN2M0xxx18.Flash_k66f18,
'k82f25615': target_MK82FN256xxx15.Flash_k82f25615,
Expand Down
116 changes: 116 additions & 0 deletions pyOCD/target/target_MK22FN1M0Axxx12.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
"""
mbed CMSIS-DAP debugger
Copyright (c) 2006-2013 ARM Limited

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""

from .family.target_kinetis import Kinetis
from .family.flash_kinetis import Flash_Kinetis
from ..core.memory_map import (FlashRegion, RamRegion, MemoryMap)
from ..debug.svd import SVDFile
import logging

SIM_FCFG1 = 0x4004804C
SIM_FCFG2 = 0x40048050
SIM_FCFG2_PFLSH = (1 << 23)

flash_algo = {
'load_address' : 0x20000000,
'instructions' : [
0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2,
0xb510483e, 0x5120f24c, 0xf64d81c1, 0x81c11128, 0xf0218801, 0x80010101, 0x78414839, 0x0160f001,
0xbf0c2940, 0x21002101, 0x444a4a36, 0xb1397011, 0xf0217841, 0x70410160, 0xf0117841, 0xd1fb0f60,
0x44484831, 0xf864f000, 0xbf182800, 0xbd102001, 0x4448482c, 0xb1587800, 0x78414829, 0x0160f021,
0x0140f041, 0x78417041, 0x0160f001, 0xd1fa2940, 0x47702000, 0xb5104824, 0x44484924, 0xf891f000,
0xbf182800, 0x2100bd10, 0xe8bd481f, 0x44484010, 0xb958f000, 0x4c1cb570, 0x444c4605, 0x4b1b4601,
0x68e24620, 0xf8b6f000, 0xbf182800, 0x2300bd70, 0x68e24629, 0x4070e8bd, 0x44484813, 0xb94cf000,
0x460cb570, 0x4606460b, 0x480f4601, 0x4615b084, 0xf0004448, 0x2800f8eb, 0xb004bf1c, 0x2000bd70,
0xe9cd2101, 0x90021000, 0x462b4807, 0x46314622, 0xf0004448, 0xb004f97f, 0x0000bd70, 0x40052000,
0x4007e000, 0x00000004, 0x00000008, 0x6b65666b, 0xbf042800, 0x47702004, 0x6cc949ea, 0x6103f3c1,
0xbf08290f, 0x1180f44f, 0x4ae7bf1f, 0xf832447a, 0x02891011, 0xe9c02200, 0x21022100, 0x61426081,
0x618202c9, 0x1203e9c0, 0x52a0f04f, 0x2108e9c0, 0x47702000, 0xbf0e2800, 0x61012004, 0x47702000,
0x48da4602, 0x49d96840, 0x0070f440, 0x47706048, 0x217048d7, 0x21807001, 0x78017001, 0x0f80f011,
0x7800d0fb, 0x0f20f010, 0x2067bf1c, 0xf0104770, 0xbf1c0f10, 0x47702068, 0x0001f010, 0x2069bf18,
0x28004770, 0x2004bf04, 0xb5104770, 0x4ac84604, 0x403bf06f, 0x48c76050, 0xbf144281, 0x2000206b,
0xbf182800, 0x4620bd10, 0xffd2f7ff, 0x46204603, 0xffc6f7ff, 0xbd104618, 0xbf042800, 0x47702004,
0x60532300, 0x60d36093, 0x61536113, 0x61d36193, 0x68c16011, 0xe9d06051, 0xfbb11001, 0x6090f0f0,
0x21102008, 0x0103e9c2, 0x1005e9c2, 0x61d02004, 0x47702000, 0x4df0e92d, 0x4615b088, 0x460c4698,
0x466a4682, 0xffd8f7ff, 0x4621462a, 0x9b044650, 0xf931f000, 0xbf1c0007, 0xe8bdb008, 0xe9dd8df0,
0x19604600, 0xfbb51e45, 0xfb06f0f6, 0xb1205010, 0xf0f6fbb5, 0x43701c40, 0x42ac1e45, 0xf8dfbf98,
0xd81cb270, 0x407ff024, 0x6010f040, 0x0004f8cb, 0x45804898, 0x206bbf14, 0x28002000, 0xb008bf1c,
0x8df0e8bd, 0xf7ff4650, 0x4607ff73, 0x0010f8da, 0xbf182800, 0xb9174780, 0x42ac4434, 0x4650d9e2,
0xff5ef7ff, 0x4638b008, 0x8df0e8bd, 0xbf042a00, 0x47702004, 0x45f0e92d, 0x4614b089, 0x460d461e,
0x466a4680, 0xff88f7ff, 0x46294632, 0x9b034640, 0xf8e1f000, 0xbf1c0007, 0xe8bdb009, 0x9d0085f0,
0xbf182e00, 0xa1e8f8df, 0xf854d025, 0xf8ca0b04, 0x98030008, 0xbf042804, 0x407ff025, 0x60c0f040,
0x2808d009, 0xf854d109, 0xf8ca0b04, 0xf025000c, 0xf040407f, 0xf8ca60e0, 0x46400004, 0xff28f7ff,
0x1010f8d8, 0x29004607, 0x4788bf18, 0x9803b91f, 0x1a364405, 0x4640d1d9, 0xff12f7ff, 0x4638b009,
0x85f0e8bd, 0xbf042800, 0x47702004, 0xea424a62, 0x4a5f4101, 0xe70b6051, 0x4dffe92d, 0x4614b088,
0x460d469a, 0x9808466a, 0xff36f7ff, 0x46294622, 0x98089b05, 0xf88ff000, 0xbf1c2800, 0xe8bdb00c,
0x466a8df0, 0x98084629, 0xff26f7ff, 0xf8dd9e00, 0x42708008, 0x0100f1c8, 0x42474008, 0xbf0842b7,
0x2c004447, 0xf8dfbf18, 0xd01fb128, 0x42a51bbd, 0x4625bf88, 0xf0269805, 0xfbb5417f, 0xf041f0f0,
0xf8cb7180, 0x04001004, 0x200aea40, 0x00fff040, 0x0008f8cb, 0xf7ff9808, 0x2800fecb, 0xb00cbf1c,
0x8df0e8bd, 0x442e1b64, 0xd1df4447, 0x2000b00c, 0x8df0e8bd, 0xbf042b00, 0x47702004, 0x4dffe92d,
0x4616b088, 0x7a14e9dd, 0x460c461d, 0xf8dd466a, 0x98088058, 0xfee0f7ff, 0x3007e9dd, 0x46214632,
0xf839f000, 0xbf1c2800, 0xe8bdb00c, 0x9c008df0, 0xbf042e00, 0xe8bdb00c, 0xf8df8df0, 0xf06fb094,
0xea40407f, 0xf0246707, 0xf040407f, 0xf8cb7000, 0xf8cb0004, 0x68287008, 0x000cf8cb, 0xf7ff9808,
0xb168fe87, 0x0f00f1ba, 0xf8cabf18, 0xf1b84000, 0xbf1c0f00, 0xf8c82100, 0xb00c1000, 0x8df0e8bd,
0x1a769907, 0x0103f021, 0x9907440d, 0xd1da440c, 0xe8bdb00c, 0x28008df0, 0x2004bf04, 0x1e5b4770,
0xbf0e4219, 0x2065421a, 0x68034770, 0xd806428b, 0x44116840, 0x42884418, 0x2000bf24, 0x20664770,
0x00004770, 0x40048000, 0x000003b4, 0x4001f000, 0x40020000, 0x6b65666b, 0x4000ffff, 0x40020004,
0x40020010, 0x00100008, 0x00200018, 0x00400030, 0x00800060, 0x010000c0, 0x02000180, 0x04000300,
0x00000600, 0x00000000, 0x00000000,
],

'pc_init' : 0x20000021,
'pc_unInit': 0x20000071,
'pc_program_page': 0x200000E1,
'pc_erase_sector': 0x200000B5,
'pc_eraseAll' : 0x20000095,

'static_base' : 0x20000000 + 0x00000020 + 0x00000504,
'begin_stack' : 0x20000000 + 0x00000800,
'begin_data' : 0x20000000 + 0x00000A00,
'page_size' : 0x00000200,
'analyzer_supported' : True,
'analyzer_address' : 0x1ffff000, # Analyzer 0x1ffff000..0x1ffff600
'page_buffers' : [0x20003000, 0x20004000], # Enable double buffering
'min_program_length' : 8,
};

class Flash_k22fa12(Flash_Kinetis):
def __init__(self, target):
super(Flash_k22fa12, self).__init__(target, flash_algo)

class K22FA12(Kinetis):

# 1MB flash with 4kB sectors, 128kB RAM
memoryMap = MemoryMap(
FlashRegion( start=0, length=0x100000, blocksize=0x1000, isBootMemory=True),
RamRegion( start=0x1fff0000, length=0x20000)
)

def __init__(self, link):
super(K22FA12, self).__init__(link, self.memoryMap)
self.mdm_idr = 0x001c0000
self._svd_location = SVDFile(vendor="Freescale", filename="MK22FA12.svd", is_local=False)

def init(self):
super(K22FA12, self).init()

# If the device has FlexNVM, then it has half-sized program flash.
fcfg2 = self.read32(SIM_FCFG2)
if (fcfg2 & SIM_FCFG2_PFLSH) == 0:
rgn = self.memory_map.getRegionForAddress(0)
rgn._end = 0x7ffff

96 changes: 96 additions & 0 deletions pyOCD/target/target_MK28FN2M0xxx15.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
"""
mbed CMSIS-DAP debugger
Copyright (c) 2016 ARM Limited

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""

from .family.target_kinetis import Kinetis
from .family.flash_kinetis import Flash_Kinetis
from ..core.memory_map import (FlashRegion, RamRegion, MemoryMap)
from ..debug.svd import SVDFile
import logging

flash_algo = { 'load_address' : 0x20000000,
'instructions' : [
0xE00ABE00, 0x062D780D, 0x24084068, 0xD3000040, 0x1E644058, 0x1C49D1FA, 0x2A001E52, 0x4770D1F2,
0xb510482e, 0x5120f24c, 0xf64d81c1, 0x81c11128, 0xf0218801, 0x80010101, 0x44484829, 0xf856f000,
0xbf182800, 0xbd102001, 0x47702000, 0xb5104824, 0x44484924, 0xf926f000, 0x4821b920, 0x44482100,
0xf9daf000, 0x684a4920, 0x0270f442, 0xbd10604a, 0x4c1bb570, 0x444c4605, 0x4b1a4601, 0x68e24620,
0xf88ef000, 0x2300b928, 0x46204629, 0xf00068e2, 0x4915f91f, 0xf442684a, 0x604a0270, 0xb570bd70,
0x460b460c, 0x46014606, 0xb084480d, 0x44484615, 0xf8b8f000, 0x2000b958, 0xe9cd2101, 0x90021000,
0x462b4807, 0x46314622, 0xf0004448, 0x4906f963, 0xf442684a, 0x604a0270, 0xbd70b004, 0x40052000,
0x00000004, 0x6b65666b, 0x4001f000, 0xbf042800, 0x47702004, 0x6cc94926, 0x0e094a26, 0xf832447a,
0x03091011, 0x2064bf04, 0x22004770, 0x2100e9c0, 0x60812104, 0x60c10289, 0x780b491f, 0x7c80f44f,
0xf303fa0c, 0x78c96103, 0x1205e9c0, 0x47704610, 0xbf0e2800, 0x61812004, 0x47702000, 0xbf042800,
0x47702004, 0x42191e5b, 0x421abf0e, 0x47702065, 0x428b6803, 0x6840d806, 0x44184411, 0xbf244288,
0x47702000, 0x47702066, 0x4288490c, 0x206bbf14, 0x47702000, 0x290fb140, 0x2a04d802, 0xe005d104,
0xbf982913, 0xd0012a08, 0x47702004, 0x47702000, 0x40048000, 0x0000036c, 0x40020028, 0x6b65666b,
0x4df0e92d, 0x46154606, 0x4618460c, 0xffdcf7ff, 0xbf182800, 0x8df0e8bd, 0x462a2310, 0x46304621,
0xffbcf7ff, 0xbf180007, 0x8df0e8bd, 0x1e451960, 0xfbb568f0, 0xfb00f1f0, 0xb1125211, 0x43481c49,
0x42ac1e45, 0xf8dfd817, 0x44f88034, 0xb030f8df, 0x0a09f04f, 0x0000f8d8, 0xf88b6004, 0xf000a007,
0x4607f917, 0x280069b0, 0x4780bf18, 0x68f0b91f, 0x42ac4404, 0x4638d9ee, 0x8df0e8bd, 0x0000027a,
0x40020000, 0xbf042a00, 0x47702004, 0x4df0e92d, 0x4614461d, 0x4607460e, 0x462a2308, 0xff7ef7ff,
0x0b00ea5f, 0xe8bdbf18, 0x2d008df0, 0xf8dfbf1e, 0x44f8804c, 0x0a07f04f, 0xf8d8d01c, 0x60060000,
0x1000f8d8, 0x0b04f854, 0xf8d86048, 0xf8541000, 0x60880b04, 0xf880480a, 0xf000a007, 0x4683f8d9,
0x280069b8, 0x4780bf18, 0x0f00f1bb, 0x3608d102, 0xd1e23d08, 0xe8bd4658, 0x00008df0, 0x00000212,
0x40020000, 0x4604b510, 0xf7ff4608, 0x2800ff5d, 0xbd10bf18, 0xbf042c00, 0xbd102004, 0x49032044,
0xe8bd71c8, 0xf0004010, 0x0000b8b3, 0x40020000, 0x4df0e92d, 0x4614469a, 0x4605460e, 0xf7ff2310,
0x2800ff2d, 0xe8bdbf18, 0xe9d58df0, 0xfbb00101, 0x4270f8f1, 0x0100f1c8, 0x42474008, 0xbf0842b7,
0x2c004447, 0xf8dfbf18, 0xd01cb044, 0x42a51bbd, 0x4625bf88, 0x490e0928, 0x68094479, 0x2101600e,
0x1007f88b, 0xf88b0a01, 0xf88b100b, 0xf88b000a, 0xf000a009, 0x2800f87d, 0xe8bdbf18, 0x1b648df0,
0x4447442e, 0x2000d1e2, 0x8df0e8bd, 0x40020000, 0x0000014c, 0xbf122800, 0x20042a00, 0x29084770,
0xe8dfd215, 0x0604f001, 0x0c0a0806, 0x68c0100e, 0x6840e00a, 0x6880e008, 0x6800e006, 0x2001e004,
0x6900e002, 0x6940e000, 0x20006010, 0x206a4770, 0x00004770, 0xbf042b00, 0x47702004, 0x4df0e92d,
0xe9dd461c, 0x46158709, 0x2304460e, 0xa020f8dd, 0xfec4f7ff, 0xbf182800, 0x8df0e8bd, 0xbf1a2d00,
0xb04cf8df, 0xe8bd44fb, 0xf8db8df0, 0x60060000, 0x21024810, 0xf88071c1, 0xf8dba00b, 0x68201000,
0xf0006088, 0xb150f825, 0x0f00f1b8, 0xf8c8bf18, 0x2f006000, 0x2100bf1c, 0xe8bd6039, 0x1f2d8df0,
0x0404f104, 0x0604f106, 0xe8bdd1df, 0x00008df0, 0x000000a0, 0x40020000, 0xbf042800, 0x47702004,
0x48022240, 0x718171c2, 0xb802f000, 0x40020000, 0x2170480c, 0x21807001, 0x78017001, 0x0f80f011,
0x7800d0fb, 0x0f20f010, 0x2067bf1c, 0xf0104770, 0xbf1c0f10, 0x47702068, 0x0001f010, 0x2069bf18,
0x00004770, 0x40020000, 0x40020004, 0x00000000, 0x00080000, 0x00100000, 0x00200000, 0x00400000,
0x00800000, 0x01000000, 0x02000000, 0x00000000,
],
'pc_init' : 0x20000021,
'pc_unInit': 0x20000049,
'pc_program_page': 0x2000009F,
'pc_erase_sector': 0x20000071,
'pc_eraseAll' : 0x2000004D,
'static_base' : 0x20000000 + 0x00000020 + 0x0000046c,
'begin_stack' : 0x20000000 + 0x00000800,
'begin_data' : 0x20000000 + 0x00000A00,
'analyzer_supported' : True,
'analyzer_address' : 0x1ffff000, # Analyzer 0x1ffff000..0x1ffff600
'page_buffers' : [0x20003000, 0x20004000], # Enable double buffering
'min_program_length' : 8,
};

class Flash_k28f15(Flash_Kinetis):

def __init__(self, target):
super(Flash_k28f15, self).__init__(target, flash_algo)

class K28F15(Kinetis):

memoryMap = MemoryMap(
FlashRegion( start=0, length=0x200000, blocksize=0x1000, isBootMemory=True),
RamRegion( start=0x1ffC0000, length=0x80000),
RamRegion( start=0x34000000, length=0x80000),
RamRegion( start=0x14000000, length=0x1000)
)

def __init__(self, transport):
super(K28F15, self).__init__(transport, self.memoryMap)
self.mdm_idr = 0x001c0000
self._svd_location = SVDFile(vendor="Freescale", filename="MK28F15.svd")

Loading