打印
[PIC®/AVR®/dsPIC®产品]

PIC18F67J60中定义一个变量数组4096字节,怎么解决

[复制链接]
1878|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wds王王|  楼主 | 2016-12-24 20:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wds王王 于 2016-12-24 21:57 编辑

操作外部FLASH 芯片时,会去读一个Sector的数据4KByte,所以要定义一个4096大小的缓存;但发现在LKR只到0XFFF,程序上定义如下:
#pragma udata bigdata
  u8    MX6445_BUFFER[4096];//缓存   4Kbytes为一个Sector
#pragma udata
LKR文件定义如下:
DATABANK   NAME=sfr14      START=0xE80             END=0xEFF          PROTECTED
DATABANK   NAME=gpr15      START=0xF00             END=0xF5F
ACCESSBANK NAME=accesssfr  START=0xF60             END=0xFFF          PROTECTED
//自己定义一个大数组
DATABANK   NAME=big        START=0x1000            END=0x2FFF   PROTECTED
SECTION    NAME=bigdata    RAM=big

程序编译能通过,但运行不正常;与定义这个数组有关,不知如何修改,help!!
沙发
xyz549040622| | 2016-12-25 21:21 | 只看该作者
PIC没搞过,可以试着指定下这个缓存的地址。但具体用什么语句,就不知道了。

使用特权

评论回复
板凳
一事无成就是我| | 2016-12-26 17:34 | 只看该作者
分到两个页,用程序判断是否需要转页(变量计数要好处理一些)

使用特权

评论回复
地板
littleming1028| | 2016-12-29 18:43 | 只看该作者
PIC18F67J60的内存好像达不到4096字节吧.....

使用特权

评论回复
5
wds王王|  楼主 | 2016-12-29 20:02 | 只看该作者
littleming1028 发表于 2016-12-29 18:43
PIC18F67J60的内存好像达不到4096字节吧.....

那如何处理呀?

使用特权

评论回复
6
littleming1028| | 2016-12-30 14:23 | 只看该作者
要不换型号,要不外置内存,纯属个人意见

使用特权

评论回复
7
wds王王|  楼主 | 2016-12-30 20:45 | 只看该作者
littleming1028 发表于 2016-12-30 14:23
要不换型号,要不外置内存,纯属个人意见

换型号不现实呀,就读写一个FLash芯片,没有必要换更高的吧,
有谁有做过,支一招吧.

使用特权

评论回复
8
jinzhan0132| | 2017-1-3 16:45 | 只看该作者
做一个FIFO?

使用特权

评论回复
9
wds王王|  楼主 | 2017-1-4 23:27 | 只看该作者

没明白怎么去做?能说清楚一点吗?或给个DEMO

使用特权

评论回复
10
mmcu| | 2017-1-5 11:22 | 只看该作者
这个型号ram只有3,808,肯定不行,你可以设定一个1K的数组,要读4次,读到一组1K数据,先处理掉,再读下一组。

使用特权

评论回复
11
jinzhan0132| | 2017-1-5 13:39 | 只看该作者
wds王王 发表于 2017-1-4 23:27
没明白怎么去做?能说清楚一点吗?或给个DEMO

楼上这样的做法也行,差不多一个意思,关于FIFO,百度比我知道的更详细。

使用特权

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

本版积分规则

6

主题

25

帖子

1

粉丝