This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28066: flash API库添加

Part Number: TMS320F28066
Other Parts Discussed in Thread: C2000WARE, SYSBIOS

请问一下:

1.添加Flash API库时,选择添加2806x_BootROM_API_TABLE_Symbols_fpu32.lib还是添加Flash2806x_API_V100.lib,根据什么选择?添加这两个不同的库,APP需要设置哪些不同的参数?

2.我在代码中添加了2806x_BootROM_API_TABLE_Symbols_fpu32.lib和rts2800_fpu32.lib之后,debug时代码停在了memcyp()函数中,请问会是什么原因?

下面是我添加的库和配置

代码Debug时停在了memcpy()函数那里,麻烦帮忙分析一下原因,谢谢!

  • 你好,可以查看下C2000ware中的quick start 文件,里面有关于API库的详细说明,应该可以帮到你:

    C:\ti\c2000\C2000Ware_4_03_00_00\libraries\flash_api\f2806x\docs

  • Flash api quick start我看了这个问题:“1.添加Flash API库时,选择添加2806x_BootROM_API_TABLE_Symbols_fpu32.lib还是添加Flash2806x_API_V100.lib,根据什么选择?添加这两个不同的库,APP需要设置哪些不同的参数?”还是没有找到答案。里面就举例了选择使用符号库的例程。我也是按照里面来进行添加相应的库文件的。

    Flash api quick start里面描述了使用符号库时需要添加2806x_BootROM_API_TABLE_Symbols_fpu32.lib和rts2800_fpu32.lib。但是我把这两个库添加到代码里面时,就出现了上述的问题2。我把rts2800_fpu32.lib去掉之后debug正常,请问为啥?

  • 是不是断点的问题,断点去了试试

  • 应该不是断点的问题。不打断点debug时,发现APP的任务没有跑起来,点击暂停发现光标停在memcpy()函数里面。我在mencpy函数前面打了断点单步执行到mencpy函数里面代码也不跑了。Console窗口报出上述故障。我把工程里面添加的rts2800_fpu32.lib去掉就好了。但是Flash api quick start里面描述了需要在工程里面包含rts2800_fpu32.lib这个库函数的。去掉不知道使用Flash_API函数有没有问题

  • 查看了你发我的帖子,跟我遇到的问题不一样,还是谢谢你的回复。

    针对上述问题还是没有找到解决办法。我按照Flash API入门手册,在工程里添加了2806x_BootROM_API_TABLE_Symbols_fpu32.lib,并在添加了库路径。但是在执行Flash_Erase()函数时,DSP复位了,麻烦帮忙查看指点一下,感谢!

    库和路劲添加

    擦除函数使用,该函数已经搬到RAM中,使用前也进行了全局中断屏蔽。

  • 看门狗关闭了吗?

  • 看门狗关了的

  • 整个main函数都搬到RAM中运行了吗?

  • 这个倒没有,工程比较大,操作Flash的函数我都搬到RAM里了的

  • 你的main函数存放在哪里?会不会是将main函数擦除了?

    建议跳过main函数的存储部分擦除试一下。

  • main函数是擦除了的。我现在在做升级功能,升级的时候把升级用到的函数搬到RAM里面,然后把Flash存储的代码进行擦除和重新烧写。

  • 如果你在main函数中调用API并擦除了main,我认为这会触发复位。

    一般来说会在bootloader中调用flash API进行升级。

    在bootloader中对flash进行擦除和重新烧录操作,在bootloader运行结束后进入app。

  • 感谢回复!

    1.是的,在Bootloader中对APP所在的Flash扇区进行擦除和编程,烧录完成之后跳转到app是没问题的。

    现在想可以在Bootloader中升级Bootloader自身,或者在APP中升级APP。我把升级用到的代码都已经搬运到RAM中运行了,应该可以才对呀,麻烦帮忙分析一下,会是哪里有问题?感谢!

    2.我在代码中添加的是2806x_BootROM_API_TABLE_Symbols_fpu32.lib(符号库),在这个模式下是不需要把擦除、编程、验证等库函数搬到RAM里面的是吧

  • 我咨询下资深工程师后回复您。

  • 好的,非常感谢

  • 请参考下工程师的回复:

    For this device, the Flash API is embedded in the boot-ROM itself, so there is no need to transfer the API from the host and copy it to RAM. Whether you want to upgrade the bootloader or the application, the procedure is the same.

  • 代码有SYSBIOS操作系统和和裸机对Flash API的使用有区别吗?

    我的Bootloader是裸机,按照要求在项目中添加了2806x_BootROM_API_TABLE_Symbols_fpu32.lib和rts2800_fpu32.lib,然后代码可以正常运行和对Flash进行操作

    我的APP使用了SYSBIOS操作系统,跟Bootloader添加一样的库,但是代码却在main函数的初始化时,停在memcpy()函数里面。不知道为啥

  • 如果库文件名称上写有nonBIOS,那么需要将相应的文件替换成BIOS的版本。

x 出现错误。请重试或与管理员联系。