企业资质

厦门渤格电气技术有限公司

普通会员8
|
企业等级:普通会员
经营模式:
所在地区:福建 厦门
联系卖家:
手机号码:
公司官网:shop432522607.taobao.com
企业地址:
企业概况

厦门渤格电气技术有限公司是一家专业提供工业自动化领域的备件服务商,产品品种齐全、价格合理,公司实力雄厚,重信用、守合同、保证产品质量,以多品种经营特色和薄利多销的原则,赢得了广大客户的信任。 我们主营PLC可编程控制器模块,DCS卡件,ESD系统卡件,振动监测系统卡件,汽轮机控制系......

PM564-R-ETH-AC

产品编号:662942732                    更新时间:2019-06-03
价格: 来电议定
厦门渤格电气技术有限公司

厦门渤格电气技术有限公司

  • 主营业务:AB,ABB,GE,本特利,福克斯波罗,霍尼韦尔,英维斯,西...
  • 公司官网:shop432522607.taobao.com
  • 公司地址:

联系人名片:

联系时务必告知是在"产品网"看到的

产品详情

ABB PLC AC500-ECO模块,PM564-R-ETH-AC

ABB PLC AC500-ECO模块,PM564-R-ETH-AC

ABB PLC AC500-ECO模块,PM564-R-ETH-AC

===============================================================

在DSP复位以后从Flash运行代码
    TMS320F28xx具有引导ROM(ROMbootloader),器件复位以后ROMbootloader能把代码运行转到Flash中。当引导模式选择引脚被配置为"跳转到Flash"时.ROMbootloader将跳转到Flash中位于地址Ox3F7FF6处的指令。用户需要在这个地址上安排一条指令,这条指令跳转到用户代码。由于C***密码从地址Ox3F7FF8开始,所以刚好有2个字可用于存放这个跳转指令。并非巧合的是,长跳转指令(在汇编代码中为LB)刚好占用2个字。
    一般情况下,跳转指令将会跳转到C编译器运行支持库中C环境初始化程序的起始位置。这个程序的人口标号是_c_int00。在这个程序没有运行的时候C代码就不能运行。同样地,有时候在开始运行用户的C应用程序之前需要执行少量的汇编代码(例如:禁止看门狗时钟外设)。这样,跳转指令需要跳转到用户汇编代码的起始位置,需要在Flash中正确***跳转指令。能达到这个目的的***简单的方法是使用汇编代码。在下面的例子中.创建了一个名为Codestart的已命名初始化段.这个段包含了一个长跳转.可以跳转到C环境初始化程序。需要用用户连接命令文件把codestart段放置在存储器中。
    可以跳转到C环境初始化程序。需要用用户连接命令文件把codestart段放置在存储器中
    用户须在用户连接命令文件MEMORY部分的PAGE0上定义一个名为BEGIN_Flash的存储器块。Codestart段将被连接到这个存储器块。下面的例子针对当前TMS320F28xx器件.对于其他的器件,参考相应的数据手册以确认Flash目标地址的引导。
    下面的例子针对当前TMS320F28xx器件.对于其他的器件,参考相应的数据手册以确认Flash目标地址的引导
    5C环境引导时禁止看门狗计时
    C编译器运行时支持库中的C环境初始化函数是_c_int00,它完成全局和静态变量的初始化。包括为每个初始化全局变量把数据从.cinit段(位于片上FLASH存储器)拷贝到.ebss段(位于RAM)。例如,当一个全局变量在源代码中声明为:
    intx="5";
    "5"被放置在初始化段.cinit,而符号"x"被放置在.ebss段。然后,_c_int00程序在运行时把"5"拷贝到"x"的位置。当软件中有初始化全局和静态变量的大量数值时。在C环境引导程序完成并且调用main()(这里看门狗可以被配置或被禁止)函数之前看门狗定时器会超时。在代码开发的过程中,这个问题可能不会在RAM中显现出来,因为从.cinit段拷贝的数据被连接到RAM后会非常快速地运行。然而,当.cinit段连接到内部Flash时。拷贝每个数据将会耗费大量的周期。因为内部Flash存储器缺省为***大等待状态(等待状态仅在用户代码运行到main()后才会被配置)。另外。代码从Flash中实现数据拷贝.这又会增加完成数据拷贝需要的时间(代码取指和数据读肯定会访问Flash)。
    看门狗超时周期缺省到尽可能的***小值.结合这么一个事实,看门狗超时变成真实的可能性。有一个简单的方法使用CCS来检测看门狗超时,步骤如下:
    (1)为已经写入Flash的代码装载符号(单击File→LoadSymbols→LoadSymbolsOnly)
    (2)复位DSP(单击Debug→ResetCPU)。
    (3)重新开始DSP(单击Debug→Restart)。如果bootloader被设置为"JumptoFlash".那么无需进行这一步。
    (4)运行到main()(单击Debug→Go_Main)。如果没有到达main(),那么在C环境初始化程序完成之前看门狗很有可能已经溢出。
    解决看门狗超时问题***简单的办法就是在开始C环境初始化程序之前禁止看门狗。在main()到达之后重新使能看门狗,并且开始正常的代码执行流程。通过将WDCR寄存器中的WDDIS位设置为1来禁止看门狗。必须使用汇编代码(因为C环境还没有建立)。在上文中,Codestart汇编代码段实现了能跳转到C环境初始化程序_c_int00的跳转指令。为了禁止看门狗,这个跳转要变为跳转到看门狗禁止代码。此看门狗代码然后又跳转到_c_int00的程序。下面的代码例子实现了这些功能:
    此看门狗代码然后又跳转到_c_int00的程序
    6结束语
    文中列举的Flash的这几种用法,在CCS中编程***到TMS320F28xxDSP开发板上,并通过运行程序验证了其正确性。Flash的这几种用法可以作为系统开发过程中的参考,有助于复杂系统开发。
 
在DSP复位以后从Flash运行代码
    TMS320F28xx具有引导ROM(ROMbootloader),器件复位以后ROMbootloader能把代码运行转到Flash中。当引导模式选择引脚被配置为"跳转到Flash"时.ROMbootloader将跳转到Flash中位于地址Ox3F7FF6处的指令。用户需要在这个地址上安排一条指令,这条指令跳转到用户代码。由于C***密码从地址Ox3F7FF8开始,所以刚好有2个字可用于存放这个跳转指令。并非巧合的是,长跳转指令(在汇编代码中为LB)刚好占用2个字。
    一般情况下,跳转指令将会跳转到C编译器运行支持库中C环境初始化程序的起始位置。这个程序的人口标号是_c_int00。在这个程序没有运行的时候C代码就不能运行。同样地,有时候在开始运行用户的C应用程序之前需要执行少量的汇编代码(例如:禁止看门狗时钟外设)。这样,跳转指令需要跳转到用户汇编代码的起始位置,需要在Flash中正确***跳转指令。能达到这个目的的***简单的方法是使用汇编代码。在下面的例子中.创建了一个名为Codestart的已命名初始化段.这个段包含了一个长跳转.可以跳转到C环境初始化程序。需要用用户连接命令文件把codestart段放置在存储器中。
    可以跳转到C环境初始化程序。需要用用户连接命令文件把codestart段放置在存储器中
    用户须在用户连接命令文件MEMORY部分的PAGE0上定义一个名为BEGIN_Flash的存储器块。Codestart段将被连接到这个存储器块。下面的例子针对当前TMS320F28xx器件.对于其他的器件,参考相应的数据手册以确认Flash目标地址的引导。
    下面的例子针对当前TMS320F28xx器件.对于其他的器件,参考相应的数据手册以确认Flash目标地址的引导
    5C环境引导时禁止看门狗计时
    C编译器运行时支持库中的C环境初始化函数是_c_int00,它完成全局和静态变量的初始化。包括为每个初始化全局变量把数据从.cinit段(位于片上FLASH存储器)拷贝到.ebss段(位于RAM)。例如,当一个全局变量在源代码中声明为:
    intx="5";
    "5"被放置在初始化段.cinit,而符号"x"被放置在.ebss段。然后,_c_int00程序在运行时把"5"拷贝到"x"的位置。当软件中有初始化全局和静态变量的大量数值时。在C环境引导程序完成并且调用main()(这里看门狗可以被配置或被禁止)函数之前看门狗定时器会超时。在代码开发的过程中,这个问题可能不会在RAM中显现出来,因为从.cinit段拷贝的数据被连接到RAM后会非常快速地运行。然而,当.cinit段连接到内部Flash时。拷贝每个数据将会耗费大量的周期。因为内部Flash存储器缺省为***大等待状态(等待状态仅在用户代码运行到main()后才会被配置)。另外。代码从Flash中实现数据拷贝.这又会增加完成数据拷贝需要的时间(代码取指和数据读肯定会访问Flash)。
    看门狗超时周期缺省到尽可能的***小值.结合这么一个事实,看门狗超时变成真实的可能性。有一个简单的方法使用CCS来检测看门狗超时,步骤如下:
    (1)为已经写入Flash的代码装载符号(单击File→LoadSymbols→LoadSymbolsOnly)
    (2)复位DSP(单击Debug→ResetCPU)。
    (3)重新开始DSP(单击Debug→Restart)。如果bootloader被设置为"JumptoFlash".那么无需进行这一步。
    (4)运行到main()(单击Debug→Go_Main)。如果没有到达main(),那么在C环境初始化程序完成之前看门狗很有可能已经溢出。
    解决看门狗超时问题***简单的办法就是在开始C环境初始化程序之前禁止看门狗。在main()到达之后重新使能看门狗,并且开始正常的代码执行流程。通过将WDCR寄存器中的WDDIS位设置为1来禁止看门狗。必须使用汇编代码(因为C环境还没有建立)。在上文中,Codestart汇编代码段实现了能跳转到C环境初始化程序_c_int00的跳转指令。为了禁止看门狗,这个跳转要变为跳转到看门狗禁止代码。此看门狗代码然后又跳转到_c_int00的程序。下面的代码例子实现了这些功能:
    此看门狗代码然后又跳转到_c_int00的程序
    6结束语
    文中列举的Flash的这几种用法,在CCS中编程***到TMS320F28xxDSP开发板上,并通过运行程序验证了其正确性。Flash的这几种用法可以作为系统开发过程中的参考,有助于复杂系统开发。

厦门渤格电气技术有限公司电话:传真:联系人:

地址:主营产品:AB,ABB,GE,本特利,福克斯波罗,霍尼韦尔,英维斯,西...

Copyright © 2025 版权所有: 产品网店铺主体:厦门渤格电气技术有限公司

免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责。产品网对此不承担任何保证责任。