ERTEC200P-2 PROFINET设备完全开发手册(10)

news2024/11/18 14:28:09

10. 固化程序

固件在SPI Flash的结构

由于绝大多数的设计都是使用SPI Flash,因此这里只介绍SPI Flash的烧写。ERTEC200P-2的固件在SPI Flash中的Layout如下图所示:

其中ROM Header:格式如下图所示: 

Firmware Binary: 协议栈固件的二进制程序

Trace Data:当协议栈出现致命错误时,会将Trace数据写入到这个区域,但是目前没有开放工具支持读取和分析这些数据

NV Data: 非易失性参数(例如:MAC地址,IP地址,设备名称)

这里需要注意的是,目前协议栈默认Trace Data起始地址为0x00570000注意与原始协议栈不同),NV Data的起始地址为0x005F0000 注意与原始协议栈不同),如果二进制程序的比较大,越过这些数据(e.g. Trace Data)的起始地址,就会被这些数据覆盖,导致协议栈无法启动。解决的办法是修改协议栈的宏SPI_FLASH_TRACE_START和SPI_NV_ADDRESS

10.1 标准的烧写方法

注意:烧写时一定要断开网线与PLC的连接。在TIA博图软件中更新在线设备,在“在线和诊断” “分配IP地址” 将设备的IP地址改为 “192.168.1.10”。

编译生成的二进制文件ecos.bin位于\pn_ioddevkits\src\projects\pnio_proj\ertec\EB200P_Debug_EcosNative,将bin文件拷贝到\tools\TcpFwLoader文件中。用记事本打开TcpFwLoader_EB200P.bat文件,修改IP地址,使IP地址与目标板一致。同时修改.bat文件中的.bin文件名,使其与BootableBinary文件中的.bin文件名一致。例如:

tcpFwLoader ecos.bin 192.168.1.10 999

在putty串口终端键入“f”后,双击TcpFwLoader_EB200P.bat运行下载程序

 选择SPI FLASH,键入“2”,完成后,关闭Eclipse和GDB Server,重启开发板就可以看到新的固件运行了。

10.2 Python 烧写工具

笔者开发了一个基于Python的小工具。基本运行步骤是:

  1. 通过JLink的GDB Server初始化SDRAM
  2. 将一个可执行程序(flash_spi.elf)加载到SDRAM的起始地址
  3. 将固件的二进制文件加载SDRAM到指定区域
  4. 将MAC地址等参数加载到SDRAM
  5. 启动可执行程序(flash_spi.elf),可执行程序会完成烧写固件,烧写NV Data,校验等操作

运行界面如下:

运行前的准备

  1. 安装pyhthon3
  2. 安装依赖库,在windows命令行中输入: 

pip3 install ConfigParser

pip3 install wxPython

pip3 install pygdbmi

如果提示找不到pip3,需要在系统路径中添加pyhton39/scripts/

开始烧写

连接JLink到目标板,打开JLink GDB Server,确认JLink GDB Server处于运行状态;运行flash_gui.py;指定gdb的可执行程序和需要烧写的二进制代码。修改相关参数,例如MAC地址(注意:每个PN设备需要占用3个MAC地址,例如当前设备的MAC地址是80_20_CB_30_00_50,那么当前设备就占用了80_20_CB_30_00_50,80_20_CB_30_00_51,80_20_CB_30_00_52三个MAC地址,下一个设备就只能从80_20_CB_30_00_53开始。此外MAC地址不能自行随意定义,需要从相关机构购买。)和SPI的偏移量(注意:一定要与固件中的宏SPI_NV_ADDRESS保持一致)。依次运行“Start GDB”和“Flash”完成烧写,烧写完成后会自动弹出对话框提示烧写完成;在烧写过程中,ERTEC200P-2调试串口会打印出状态信息:

 如果需要修改默认值,可以直接编辑config.ini文件

 附录

1. 其他的评估板的适配

如果要适配NINICARD和NANO评估板,打开项目中的Makefile

如果是MINICARD,去掉#DEFD += -DMINI_BOARD_V1=1 的注释标识#

如果是NANO,去掉#DEFD += -DNANO_BOARD_V1=1 的注释标识#

2. 致谢

感谢大家选择西门子ERTEC200P芯片进行PN设备的开发!您对PN技术的支持,给我们增添了在技术的道路上勇往直前的信心和勇气。

祝开发顺利 !

                                                                                                                 芥末博士

                                                                                                                 2023-4-24

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455315.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【TypeScript】TS中type和interface在类型声明时的区别

🐱 个人主页:不叫猫先生 🙋‍♂️ 作者简介:2022年度博客之星前端领域TOP 2,前端领域优质作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫优质专栏:vue3从入门到精通、TypeScript从入门到实践 📢 资料领取:前端进阶资料可以找我免…

RxJava中DISPOSED状态的被观察者任务执行onError/onSuccess导致的崩溃问题

RxJava中写了doOnError但还是导致应用崩溃问题记录 一、问题背景1.1 崩溃堆栈1.2 写demo代码复现相同逻辑 二、问题等价还原-复现2.1 代码位置:io.reactivex.internal.operators.single.SingleCreate.Emitter#onError 三、修复方法3.1 方案一:设置全局的…

springboot +flowable,处理 flowable 的用户和用户组(二)

一.简介 对于flowable是什么以及关于此框架的具体信息可以参看此项目的官方文档:https://www.flowable.org/docs/userguide/index.html Flowable is a light-weight business process engine written in Java.这是官网文档对此框架的完美解释:Flowable…

4·26世界知识产权日,Adobe助力认知和解决知识产权的那些事

2023年是中国与世界知识产权组织(WIPO)合作50周年,在第23个世界知识产权日来临之际(每年4月26日定为世界知识产权日),让我们先来了解一下知识产权的相关知识吧! ①“知识产权”的定义是什么? 知识产权是指…

FVM初启,Filecoin生态爆发着力点在哪?

Filecoin 小高潮 2023年初,Filecoin发文分享了今年的三项重大变更,分别是FVM、数据计算和检索市场的更新,这些更新消息在发布后迅速吸引了市场的广泛关注。 特别是在3月14日,Filecoin正式推出了FVM,这一变革使得File…

对比度亮度调整与通道分离合并

对比度亮度调整与通道分离合并 对比度亮度调整: 1)原理介绍: g’ g * Mult Add ⚫ g 表示原图像像素 ⚫ g’ 表示输出图像像素 ⚫ Mult 被称为增益(gain), 通常用来控制图像的对比度 ⚫ Add 通常被称为偏置(bias), 通常用来控制图像的亮度 g’(i,j) Mult * g(i,j) Add …

九龙证券|两日连涨,猪价或见底!二季度末生猪养殖有望扭亏为盈

猪肉产品质量和价格涨跌备受商场重视。 猪肉指数接连下行 4月20日,A股大盘全天弱势。猪肉指数继续下行,收跌0.65%。成份股中,仅新五丰、温氏股份等上涨,大多个股录得跌落。天域生态跌4.46%,海大集团、禾丰股份跌逾3%。…

Ubuntu 20.04 安装 Latex 并使用 vscode 作为文本编辑器

Ubuntu 20.04 安装 Latex 并使用 vscode 作为文本编辑器 1 Texlive 下载与安装1.1 镜像文件下载1.2 安装步骤1.3 查看是否安装成功1.4 相关依赖安装 2 安装 windows 字体3 vscode 编辑与编译环境配置3.1 vscode 安装3.2 编辑相关插件安装3.3 编译环境配置附录: 因为…

【Redis】Redis持久化

介绍 ​ Redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。Redis提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。 ​ 既然redis的数据可以保存在磁盘上&…

STL : 栈 stack 与 队列 queue

Stack #include<stack> using namespace std; 栈&#xff1a;LIFO&#xff0c;先进后出&#xff1b; 不允许遍历&#xff0c;仅仅一个出口&#xff0c;只有栈顶元素可被访问到。 Member functions NameRoleNotice&#xff08;constructor&#xff09;基本构造函数指…

ChatGLM-6B 中文对话模型复现、调用模块、微调及部署实现(更新中)

ChatGLM-6B-PT 一、前言 近期&#xff0c;清华开源了其中文对话大模型的小参数量版本 ChatGLM-6B&#xff08;GitHub地址&#xff1a;https://github.com/THUDM/ChatGLM-6B&#xff09;。其不仅可以单卡部署在个人电脑上&#xff0c;甚至 INT4 量化还可以最低部署到 6G 显存的…

从零开始写一个 即时通讯程序

即时通信&#xff08;IM&#xff09;是指能够即时发送和接收互联网消息等的业务。自1998年面世以来&#xff0c;特别是近几年的迅速发展&#xff0c;即时通信的功能日益丰富&#xff0c;逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。即时通信不再是一个单纯的…

谁说不能用中文写代码?

入门教程、案例源码、学习资料、读者群 请访问&#xff1a; python666.cn 大家好&#xff0c;欢迎来到 Crossin的编程教室 &#xff01; 现代计算机和编程的起源和推动力量主要源自美国&#xff0c;再加上26个字母很便于表示&#xff08;算上大小写&#xff0c;6位bit就够了&am…

32岁阿里P7,把简历改成不知名小公司,学历改成普通本科,工作内容不变,投简历全挂!...

hr靠什么来招人&#xff1f; 一位猎头讲述了自己和朋友打赌的故事&#xff1a; 朋友在阿里云&#xff0c;32岁&#xff0c;P7&#xff0c;他把简历上的公司改成不知名&#xff0c;学历改成普通本科&#xff0c;工作内容不变&#xff0c;结果投其他公司&#xff08;比如京东&…

ThinkPHP6之数据库操作下

ThinkPHP6之数据库操作下 前言一&#xff0c;查询表达式1.1 where1.2table和name1.3field1.4limit1.5page1.6 order 二&#xff0c; 聚合查询三&#xff0c;分页查询总结 前言 数据库操作除了增&#xff0c;删&#xff0c;查&#xff0c;改&#xff0c;这四个基本操作外&#x…

【C++】二叉搜索树(概念、实现、应用以及OJ题详解)

前言&#xff1a; 此前我们在C语言实现数据结构的时候学习过二叉树&#xff0c;但是那个时候我们没有深入学习二叉搜索树。本章重提二叉树并详解二叉搜索树有下面两个原因&#xff1a; 1、为我们下一章学习set和map做准备&#xff1b;2、详解我们进阶一点的二叉树的面试OJ题&a…

120名顶级技术专家用GPT-4搞出的脑洞发明大赏

文 | 智商掉了一地 黑客松&#xff08;Hackathon&#xff09;是一种聚集程序员、设计师等技术人才&#xff0c;共同在短短几天的时间内合作进行软件开发、解决问题的活动。参与者可分为个人和团队形式参与&#xff0c;他们将利用这段时间内的集中创作和多学科合作&#xff0c;迅…

Java网络编程系列之NIO

Java网络编程系列之NIO 1.Java NIO概述1.1 阻塞IO1.2 非阻塞IO1.3 NIO概述1.3.1 Channels1.3.2 Buffer1.3.3 Selector 2.Java NIO(Channel)2.1Channel概述2.2 Channel实现2.3 FileChannel 介绍与示例2.4 FileChannel 操作详解2.4.1 打开FileChannel2.4.2 从FileChannel读取数据…

带你一步步实现代码开发平台——概述、实现模式、整体框架

概述 低代码开发平台是一种开发工具&#xff0c;它允许用户使用图形界面和少量编码来创建应用程序。这种平台的目的是加快应用程序开发速度&#xff0c;减少开发成本和技能门槛。目前&#xff0c;市场上有许多低代码开发平台可供选择&#xff0c;包括Microsoft Power Apps、Ou…

学系统集成项目管理工程师(中项)系列11a_沟通管理(上)

1. 基本概念 1.1. 构成 1.1.1. 接收者和发送者 1.1.1.1. 参与者既发送信息&#xff0c;又接收反馈&#xff0c;是一体的 1.1.2. 信息&#xff08;Message&#xff09; 1.1.2.1. 多个参与者之间需要分享的信息&#xff0c;表达思想和情感的组成物 1.1.2.2. 信息的存在方式…