OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5650|回复: 15

原子哥板子关于sram的问题

[复制链接]

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
发表于 2013-11-23 11:53:43 | 显示全部楼层 |阅读模式
今天突然想把原子哥战舰板子的综合实验程序挪用到mini板子上,主要是想用其中的μC/COS操作系统。在建立任务运行的时候,总是进入void HardFault_Handler(void)程序中,如果把有关sram和LCD_init的内容屏蔽掉,任务就可以自由运行了;我考虑lcd——init中因为有关sram的内容,所以我的判断是sram影响的程序的运行,导致程序总进入hardFault,不知道对不对?还有应该怎么修改能使程序在有sram内容的时候也可以自由运行呢?请哪位大神帮小弟解答一下,小弟感激不尽啊!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2013-11-23 13:56:26 | 显示全部楼层
回复【楼主位】专注:
---------------------------------
LCD驱动你改了么?
站在巨人的肩膀上不断的前进。。。
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
 楼主| 发表于 2013-11-23 15:44:32 | 显示全部楼层
回复【2楼】xiaoyan:
---------------------------------
我把单独LCD_init屏蔽了也不行,得把LCD和sram一起屏蔽掉才好用。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-23 16:23:34 | 显示全部楼层
回复【3楼】专注:
---------------------------------
sram你用了没有?
mini板没有外部sram...
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
 楼主| 发表于 2013-11-23 18:12:35 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我没用,所以给屏蔽了,那就是说因为mini板子没有外部sram,所以把战舰的程序移到mini板子上,才会出现进入hardfault的情况么?
还有,现在我又遇到个新问题,就是我想在μC/os里面加入FatFs文件系统,但是用了SD_Initialize(void)函数后,程序就不运行了,这回不是出现hardfault的情况,而是程序进入这句中(我是在线仿真)就出不来了。
do
{
r1=SD_SendCmd(CMD0,0,0x95);//进入IDLE状态
}while((r1!=0X01) && retry--);
请问原子哥,这是怎么回事啊?谢谢了。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-24 12:00:37 | 显示全部楼层
估计内存访问问题
看内存管理,数组,指针等地方的设置是不是有问题?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
 楼主| 发表于 2013-11-24 13:08:21 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
请问原子哥,SD_sendblock(buf,cmd)这个函数里面您说cmd是指令,这个指令是指什么啊?是CMD0之类的么
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-24 16:41:13 | 显示全部楼层
u8 SD_WriteDisk(u8*buf,u32 sector,u8 cnt)
{
u8 r1;
if(SD_Type!=SD_TYPE_V2HC)sector *= 512;//转换为字节地址
if(cnt==1)
{
r1=SD_SendCmd(CMD24,sector,0X01);//读命令
if(r1==0)//指令发送成功
{
r1=SD_SendBlock(buf,0xFE);//写512个字节    
}
}else
{
if(SD_Type!=SD_TYPE_MMC)
{
SD_SendCmd(CMD55,0,0X01);
SD_SendCmd(CMD23,cnt,0X01);//发送指令
}
  r1=SD_SendCmd(CMD25,sector,0X01);//连续读命令
if(r1==0)
{
do
{
r1=SD_SendBlock(buf,0xFC);//接收512个字节  
buf+=512;  
}while(--cnt && r1==0);
r1=SD_SendBlock(0,0xFD);//接收512个字节 
}
}   
SD_DisSelect();//取消片选
return r1;//
}
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
 楼主| 发表于 2013-11-25 19:03:46 | 显示全部楼层
回复【8楼】正点回复【8楼】正点原子:
---------------------------------
0XFC和0XFD是怎么来的呢?用来作什么呢?
回复 支持 反对

使用道具 举报

3

主题

15

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2012-9-19
在线时间
0 小时
发表于 2013-11-25 19:44:42 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
 原子哥你下面打算玩什么了啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-25 19:45:49 | 显示全部楼层
看SD卡白皮书.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
 楼主| 发表于 2013-11-26 09:39:31 | 显示全部楼层
回复【11楼】正点原子:
---------------------------------原子哥,写操作的起始令牌是0Xfc,结束令牌是0xfd,读操作的起始令牌是0xfe,对么?
那读操作的结束令牌是多少呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-26 11:31:57 | 显示全部楼层
回复【12楼】专注:
---------------------------------
我也不记得了,你得研究白皮书.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
 楼主| 发表于 2013-11-26 14:18:01 | 显示全部楼层
回复【13楼】正点原子:
---------------------------------
原子哥,1、f_opendir(&dir0,  fileDir);这个函数是按照fileDir这个路径打开文件,将其目录存在dir0里么?

            2、f_readdir(&dir1,&fileInfo);这个函数是把dir1结构体中的内容读出来,存到fileInfo中么?假如dir1目录中有a、b、c、d四个文件,那他是一次把dir1目录中的所有内容都存到fileInfo中呢,还是每次只存储一个(例如是a),然后索引自动下移,等到循环到下次时再存储下一个(例如是b)。
麻烦你了啊,原子哥
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-11-27 00:43:16 | 显示全部楼层
回复【14楼】专注:
---------------------------------
你上fatfs官网学习下.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2013-8-15
在线时间
0 小时
 楼主| 发表于 2013-11-27 09:45:17 | 显示全部楼层
回复【15楼】正点原子:
---------------------------------
我这个就是在那个官网看的,我的理解,不知道对不对
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-8 12:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表