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.

关于28335的 FLASH API 库



         目前选用了28335,但并没有浮点运算,所以工程的编译选项并没有加载FPU功能(--float_support=fpu32),但是因为要用到 28335的FLASH API库(Flash28335_API_V210.lib),总是link出错,不知是否是因为Flash28335_API_V210.lib库选用了编译选项--float_support=fpu32,而我的工程没有这个编译项的缘故。

请问:

          1、如果要用 Flash28335_API_V210.lib,我自己的工程必须选用编译选项--float_support=fpu32?

          2、因为没有浮点运算,选用编译选项--float_support=fpu32后,是否有不利影响?

 

谢谢!

 

  •         我又尝试了打开FPU功能,所以增加 编译项 --float_support=fpu32,编译是可以通过了,但是程序跑飞了。

            原工程是正常的,没有编译选项--float_support=fpu32,另外FLASH API库使用的是Flash28235_API_V210.lib(除对FLASH 的操作不能成功,其它程序功能均正常)

    谢谢!

  • 用F28235的API也不可以么?

  • 1、原工程用Flash28235_API_V210.lib,不打开 FPU功能,实时库采用 rts2800_ml.lib,程序可以正常工作,当然不能进行FLASH相关操作(因为芯片为335)。

    2、为了能实现FLASH的相关操作,就要使用Flash28335_API_V210.lib,如果这样,工程就要打开 FPU,才能link通过,实时库采用 rts2800_fpu32.lib,这样程序一启动就会跑飞。

    3、初步跟踪发现,程序进入了非法指令中断的死循环里。

    谢谢!

  • 1.  用F28235的Flash API应该也可以对F28335进行操作,因为F2823x和F2833x只有定浮点的差别,其他完全一样。

    2. 楼主是否用到了IQmath? IQmath中是定义成Type=Float么?

    3. 具体在执行哪条语句导致进入了illegal ISR呢?

  • 或者建议楼主 直接将芯片配置成F28235, 因为如果不用FPU,F28335就是F28235.

    什么头文件,CMD,所有东西都改成F28235,再调用F28235的Flash API。

    量产的时候也用F28235 就可以了,是Pin 2 Pin的

  • 1.  用F28235的Flash API应该也可以对F28335进行操作

        - 这个还没试,只是想当然,马上试一下。

    2. 楼主是否用到了IQmath? IQmath中是定义成Type=Float么

        - 没有用IQmath?

    3. 具体在执行哪条语句导致进入了illegal ISR呢?

        - 不太一定,还没定位到

    如果使用 FPU编译选项, 会影响什么呢,除了TI头文件中的delay_us()用到浮点外,我自己的程序没有浮点运算。

    谢谢!

  • 1. 不是想当然,你把F28335,全部当成F28235就没有问题了,因为你现在用的就是F28235的功能,这两科芯片除了FPU,没有其他区别。建议您尝试一下。

    2. 没用就没有问题。

  • 没有使用浮点运算,就不必使能FPU编译选项,链接出错时,具体提示信息是什么?

    使用FlashAPI与是否使能FPU编译选项没有关系。

    建议仔细阅读FlashAPI手册,按照提供的check list重新检查每一步的配置,特别注意cmd文件的更改以及操作时关闭中断。

  • 不知道现在楼主按照我的建议尝试之后,效果如何?有何反馈?谢谢!

  • 多谢!

    用F28235的Flash API,不打开FPU编译选项是可以的,能实现FLASH的正常操作。

    至于打开FPU后,程序跑飞的问题,可能需要花些时间去跟踪,到时有结果再向各位请教。

    Thinks Again.

  • 那建议楼主以后量产的时候,下单下城F28235, pin 2 pin的,可以节省成本。

  • 我之所以从 28232 向 28335 迁移,很大部分的原因是现在市面上 28335的价格同 28232的相差无几,并且 28335 更容易获得些。

    不知TI的实际情况是否是这样?

    谢谢!

  • 如果你一年用不上100片,那就从市面上抓吧,用F28335是好买一些,因为这颗料流到市场上多一些。

    如果量大的话,直接联系代理商,走正规渠道,这样TI的任何一颗C2000的料都是一样的,没有好拿和不好拿之分。

  • 你好,jones,我现在也用到了28335 的flash api,也用到了IQmath.lib,按照你前面描述,方法就是:

    1、跟换Flash28335_API_V210.lib为Flash28235_API_V210.lib,并且跟换所有28335为28235,这样操作有没有什么风险隐患?

    2、网上有人说可以把IQmath.lib更换掉,换成IQmath_fpu32.lib,请问这么做也可以吗?(但是我找不到IQmath_fpu32.lib)

    期待你的回复!