使用freemaster对嵌入式MCU内部全局变量进行标定(自动化)

使用freemaster对嵌入式MCU内部全局变量进行标定(自动化)



注意下面
如果有车载讨论需要的小伙伴,可以私信加我微信,拉你进群,和同行业大佬交流
注意上面

前言

之前挑选MCU内部的标定方案时,大佬告知了一个方案,NXP芯片提供的一个免费标定MCU内部全局变量的软件工具freemaster(只限于NXP的芯片方案),虽然我后续找到了完全不受芯片限制的方案,但是还是有必要记录一下,也许后面还会用到

一、freemaster是什么软件

虽然懂得基本都懂,不懂得,我说了也白瞎。但还是简单带一下,一个用于手自动观测采用nxp芯片的嵌入设备的代码内部的全局变量工具

二、如何进行freemaster的自动标定

看了大佬提供的json_rpc方案,Python是支持rpc的,我们可以通过这种方案实现自动化控制freemaster软件进行自动化标定

1.具体代码

代码如下(示例):

from jsonrpclib import ServerProxy
from typing import Optional, List


class FreemasterCal():
    def __init__(self):
        self.server = ServerProxy("http://localhost:41000")

    def start_comm(self,model=1):
        """
        功能:启动Freemaster连接
        """
        if self.server is not None:
            if model == 1:
                self.server.StartComm("DAP")
            elif model == 2:
                self.server.StartComm("PEMICRO")
            elif model == 3:
                self.server.StartComm("JLINK")

    def stop_comm(self):
        """
        功能:停止Freemaster连接
        """
        if self.server is not None:
            self.server.StopComm()

    def read_symbol(self, name: Optional[str]):
        """
        读取该变量名的的数据
        """
        addr, size = self.__get_symbol_info(name)
        data = self.__read_memory(addr, size)
        return data

    def __get_symbol_info(self, name) -> Optional[(int, int) or None]:
        """
        通过变量名获取elf或map文件中的地址和长度,并返回出去
        """
        if self.server is not None:
            rtn_msg = self.server.GetSymbolInfo(name)
            addr = rtn_msg['xtra']['addr']
            size = rtn_msg['xtra']['size']
            return addr, size

    def __read_memory(self, addr: Optional[int], size: Optional[int]):
        """
        读取内存地址中的数据
        """
        if self.server is not None:
            rtn_msg = self.server.ReadMemory(addr, size)
            datalist = rtn_msg['data']

总结

以上代码只是简单写了实现,没有做相关的捕获异常,实际跑起来会有相关问题,仅提供思路给诸位参考,具体信息,建议诸位去参考freemaster相关的英文帮助文档

写在结尾

我是一名车载集成测试开发工程师,希望能和志同道合的朋友一起相互学习进步

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值