不使用mspdebug命中20位msp430(大内存模型)断点

时间:2017-07-13 10:21:41

标签: debugging msp430

我正在使用MSP430F5438A与使用Spy-By-Wire的Olimex MSP430_JTAG-TINY-V2接口。我们正在使用大内存模型。使用import Foundation public enum AnEnum: String, Codable { case enumValue } struct AStruct: Decodable { enum CodingKeys: String, CodingKey { case dictionary } let dictionary: [AnEnum: String] } public extension KeyedDecodingContainer { public func decode(_ type: [AnEnum: String].Type, forKey key: Key) throws -> [AnEnum: String] { let stringDictionary = try self.decode([String: String].self, forKey: key) var dictionary = [AnEnum: String]() for (key, value) in stringDictionary { guard let anEnum = AnEnum(rawValue: key) else { let context = DecodingError.Context(codingPath: codingPath, debugDescription: "Could not parse json key to an AnEnum object") throw DecodingError.dataCorrupted(context) } dictionary[anEnum] = value } return dictionary } } 我们可以在低内存(<64kB)中设置断点,这些工作正常。如果尝试在高内存(> 64kB)中设置断点,虽然它已正确列出,但地址已被截断为16位。因此,例如,如果我在let jsonString = """ { "dictionary" : { "enumValue" : "someString" } } """ let data = jsonString.data(using: String.Encoding.utf8)! let decoder = JSONDecoder() let aStruct = try! decoder.decode(AStruct.self, from: data) dump(aStruct) /* prints: ▿ __lldb_expr_148.AStruct ▿ dictionary: 1 key/value pair ▿ (2 elements) - key: __lldb_expr_148.AnEnum.enumValue - value: "someString" */ 设置断点,则如果获取mspdebug处的代码,则CPU将暂停。

我也尝试使用TI Launchpad(G2)作为调试器,我得到了相同的结果。

谷歌搜索这个问题没有任何结果(虽然也许我不是在找正确的事情?)任何人都可以对此有所了解吗?

0 个答案:

没有答案