打印
[串口烧写]

那么,我的问题来了!28335的Flash问题

[复制链接]
5799|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
scottly|  楼主 | 2014-11-20 17:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
目前,可以使用PC机上prog2软件烧写28335的Flash,只要配置好启动模式就可以;
还可以在CCS中烧写Flash,配置好cmd文件即可;

现在我的需求是:不通过PC机,通过远程的网络摄像机的串口烧写28335的Flash程序,这样会更方便调试,该如何读写Flash呢?
在网上看到这样一句话:FLASH存储器由8个32K×16位扇区组成,用户可以对其中任何一个扇区进行擦除、编程和校验,而其他扇区不变。


相关帖子

沙发
scottly|  楼主 | 2014-11-20 17:07 | 只看该作者
板凳
scottly|  楼主 | 2014-11-20 17:17 | 只看该作者
好像和28335 Flash API有关。。。。不太懂  大牛求指教!

使用特权

评论回复
地板
zhangmangui| | 2014-11-20 23:33 | 只看该作者
具体没有用串口烧写过    看到网上有人分享过相关操作

使用特权

评论回复
5
scottly|  楼主 | 2014-11-21 08:53 | 只看该作者
zhangmangui 发表于 2014-11-20 23:33
具体没有用串口烧写过    看到网上有人分享过相关操作

我说了,不是用PC的串口烧写的,人家说可以使用28335 Flash API什么的。。。

使用特权

评论回复
6
scottly|  楼主 | 2014-11-21 12:15 | 只看该作者
没人会么?

使用特权

评论回复
7
scottly|  楼主 | 2014-11-22 08:34 | 只看该作者
已经找到思路,大致看了一遍28335的 flash api文档,可以在正常的程序中加入flash api函数,通过28335 SCI串口读取外部指令,如果读到烧写flash指令,使用flash api函数烧写flash扇区,烧写完毕后复位28335.

使用特权

评论回复
8
jing43| | 2014-11-30 00:14 | 只看该作者
恭喜,你找对了方向。提醒一下,28335 进入 flash 操作之前,关闭所有中断。

使用特权

评论回复
9
scottly|  楼主 | 2014-11-30 09:12 | 只看该作者
jing43 发表于 2014-11-30 00:14
恭喜,你找对了方向。提醒一下,28335 进入 flash 操作之前,关闭所有中断。

多点提醒呢?这个我知道,嘿嘿!

使用特权

评论回复
10
jing43| | 2014-11-30 11:25 | 只看该作者
好吧,全给你,就这么多内容:
FLASH api 运行在 RAM 中,
操作 FLASH 时不要使用任何中断,
通信时数据做坚固一点,确保数据的正确性,
FLASH 的每一位都可以从 1 写到 0,但不可以从 0 写到 1,要想从 0 写到 1,把这一个区都擦写一遍(所有位全为 1)。

使用特权

评论回复
11
scottly|  楼主 | 2014-12-1 08:39 | 只看该作者
本帖最后由 scottly 于 2014-12-1 10:10 编辑
jing43 发表于 2014-11-30 11:25
好吧,全给你,就这么多内容:
FLASH api 运行在 RAM 中,
操作 FLASH 时不要使用任何中断,

好吧,我承认这个看过手册后也明白了,再请问下,Flash API中的函数用来烧写Flash,请问代码应该如何组织呢?
比如,我用官方API例程(程序烧在flashA,运行时调到RAM运行)烧写一个简单的led程序到FlashB,可以正常的烧写,但是程序启动时 任然启动的是FlashA中Flash api的程序,而不是FlashB中的led程序,这个怎么解决呢?
如果我把led程序烧到FlashA,则Flash API程序就会被覆盖掉,我测试过,后续的烧写led就不能继续了。。。求指教

下面的是官方例程CMD文件

使用特权

评论回复
12
jing43| | 2014-12-1 19:53 | 只看该作者
这个问题已经超出了 FLASH API 的范围了。
程序的启动,是从固定地址开始的,那个地址可能就是 codestart ,那个里一般放入 B xxxxxxxx 跳转指令,
你虽然写了 FLASH B,但是程序的第一条指令并没有被修改。

使用特权

评论回复
13
scottly|  楼主 | 2014-12-1 20:12 | 只看该作者
jing43 发表于 2014-12-1 19:53
这个问题已经超出了 FLASH API 的范围了。
程序的启动,是从固定地址开始的,那个地址可能就是 codestart  ...

那肿么办啊?有什么好的解决办法

使用特权

评论回复
14
zhangmangui| | 2014-12-2 10:31 | 只看该作者
可以二次引导的 28335上具体没搞过

使用特权

评论回复
15
scottly|  楼主 | 2014-12-2 10:49 | 只看该作者
zhangmangui 发表于 2014-12-2 10:31
可以二次引导的 28335上具体没搞过

你好,请问你说的二次引导这么做呢?可以给我点建议么?
特别是CMD文件如何写呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

179

帖子

1

粉丝