打印
[STM32H7]

【银杏科技ARM+FPGA】分享iCore4T移植RT-Thread过程的点点滴滴

[复制链接]
楼主: heart蓝色CD
手机看帖
扫描二维码
随时随地手机跟帖
61
不错的资料,非常值得收藏学习。

使用特权

评论回复
62
GT01115| | 2020-9-18 09:52 | 只看该作者
支持支持

使用特权

评论回复
63
Zzzzz1225| | 2020-9-19 08:57 | 只看该作者
板子很棒!写的非常详细,感谢分享

使用特权

评论回复
64
Zzzzz1225| | 2020-10-10 14:03 | 只看该作者
资料很全呀,再来回顾一下

使用特权

评论回复
65
xiaolin1111| | 2020-10-14 10:42 | 只看该作者
这个资料好啊   正好用到项目中

使用特权

评论回复
66
GT01115| | 2020-10-20 09:43 | 只看该作者
支持支持

使用特权

评论回复
67
xiaolin1111| | 2020-10-21 09:30 | 只看该作者
感谢楼主  学习学习

使用特权

评论回复
68
如意不如意| | 2020-10-28 11:33 | 只看该作者
分享iCore4T移植RT-Thread过程的点点滴滴——DAY 9
高手请略过,如有错误请多多批评指点!
之前咱们已经移植了FLASH驱动,今天给大家分享W25Q64加入文件系统的过程并完成文件创建、写入、读出的测试。
1、开启 / 配置 DFS 框架进入stm32h750-gingko-icore4t文件夹下,右击空白处,选择ConEmu Here,打开menuconfig,RT-Thread Components Device virtual file system 下,使能文件系统。


2、开启 SPI 设备驱动, 在 RT-Thread Components → Device Drivers 下勾选Using MTD Nor Flash device drivers 和 Using Serial Flash Universal Driver 选项保存并退出menuconfig

3、使用scons命令,键入scons --target=mdk5,生成MDK5工程。
2、打开stm32h750-gingko-icore4t下的project.uvprojx工程,编译,烧录,就可以进行文件系统测试了
3、打开终端,可以看到系统启动信息,file system initialization done!,文件系统初始化成功,下面进行文件创建、写入、读出测试,

至此说明我们的文件系统已经添加成功。

9、源代码

源代码可以稳步这里下载:
链接:https://pan.baidu.com/s/1fcLU4WaRDlgr0mNYwZj1Yg  提取码:zstq

使用特权

评论回复
69
韩小野| | 2020-10-29 08:53 | 只看该作者
支持支持!

使用特权

评论回复
70
如意不如意| | 2020-10-30 18:07 | 只看该作者
本帖最后由 如意不如意 于 2020-11-3 09:06 编辑

分享iCore4T移植RT-Thread过程的点点滴滴——DAY 10

高手请略过,如有错误请多多批评指点!

SDRAM同步动态随机存储器iCore4T ARM+FPGA双核心板挂有一片容量为32M外部SDRAM,在前面项目的基础上(rt-thread-icore4t-v0.7),分享RTT的SDRAM驱动移植,最后实现外部SDRAM的读写测试。

1、首先按照银杏知识库iCore4T双核心板系列教程(STM32CubeMX教程六十——LCD实验驱动4.3寸液晶屏)来对项目Cube进行配置需要配置时钟、GPIO、TIM12、FMC。要与教程配置保持一致,配置完成后重新生成MDK工程。

http://www.gkwiki.cn/doku.php?id=icore4t_60

2、复制刚刚生成的src文件夹main.c文件中的函数SystemClock_Config(void)到board.c。这里内核初始化时要调用该函数进行时钟配置。

3、修改board文件夹下kconfig文件,在menu "Onboard Peripheral Drivers"中添加配置SDRAM的选项。



4、在board文件夹下新建ports文件夹,用来存放接口头文件。在ports下新建sdram_port.h文件,并添加接口头文件路径到board/SConscript中,内容如下:

#ifndef __SDRAM_PORT_H
#define __SDRAM_PORT_H

#ifdef __cplusplus
extern "C" {
#endif

#define SDRAM_MODEREG_BURST_LENGTH_1                                    ((uint16_t)0x0000)
#define SDRAM_MODEREG_BURST_LENGTH_2                                   ((uint16_t)0x0001)
#define SDRAM_MODEREG_BURST_LENGTH_4                                     ((uint16_t)0x0002)
#define SDRAM_MODEREG_BURST_LENGTH_8                                       ((uint16_t)0x0004)
#define SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL                   ((uint16_t)0x0000)
#define SDRAM_MODEREG_BURST_TYPE_INTERLEAVED                ((uint16_t)0x0008)
#define SDRAM_MODEREG_CAS_LATENCY_2                                           ((uint16_t)0x0020)
#define SDRAM_MODEREG_CAS_LATENCY_3                                           ((uint16_t)0x0030)
#define SDRAM_MODEREG_OPERATING_MODE_STANDARD           ((uint16_t)0x0000)
#define SDRAM_MODEREG_WRITEBURST_MODE_PROGRAMMED  ((uint16_t)0x0000)
#define SDRAM_MODEREG_WRITEBURST_MODE_SINGLE                ((uint16_t)0x0200)
#define SDRAM_REFRESH_COUNT                                                                 ((uint32_t)0x0603)

#define LOADTOACTIVEDELAY                                 2
#define EXITSELFREFRESHDELAY                         7
#define SELFREFRESHTIME                                       4
#define ROWCYCLEDELAY                                           7
#define WRITERECOVERYTIME                                        2
#define RPDELAY                                                              2
#define RCDDELAY                                                          2

#define SDRAM_BANK_ADDR                                      ((uint32_t)0xC0000000)
#define SDRAM_SIZE                                                      ((uint32_t)0x2000000)
#define SDRAM_DATA_WIDTH                                  16
#define SDRAM_TARGET_BANK                                 1
#define SDRAM_COLUMN_BITS                                9
#define SDRAM_ROW_BITS                                        13
#define SDRAM_CAS_LATENCY                                 3
#define SDCLOCK_PERIOD                                         2
#define SDRAM_RPIPE_DELAY                                  1

#ifdef __cplusplus
}
#endif
#endif /*__ SDRAM_PORT_H */




5、进入stm32h750-gingko-icore4t文件夹下,右击空白处,选择ConEmu Here,使用scons命令,键入scons --target=mdk5,生成MDK5工程。

6、打开stm32h750-gingko-icore4t下的project.uvprojx工程,编译,烧录,就可以进行外部SDRAM测试了

7、打开终端,选择对应COM口,比特率115200,可以看到系统启动信息,sdram init success,外部SDRAM映射地址为0xC0000000,大小为32M。运行sdram_test读写测试程序,

至此说明我们的外部SDRAM驱动已经添加成功。

8、源代码
源代码可以稳步这里下载:
链接:https://pan.baidu.com/s/1fcLU4WaRDlgr0mNYwZj1Yg  提取码:zstq

使用特权

评论回复
71
回复就哭哭| | 2020-10-30 23:12 | 只看该作者
使用scons命令生成MDK5工程,编译、烧录,最后探测不到了AXP152是怎么回事?

使用特权

评论回复
72
回复就哭哭| | 2020-10-30 23:13 | 只看该作者
楼主写的很详细,刚刚没耐心等待,已经没问题了。谢谢。

使用特权

评论回复
73
heart蓝色CD|  楼主 | 2020-10-31 08:56 | 只看该作者
回复就哭哭 发表于 2020-10-30 23:12
使用scons命令生成MDK5工程,编译、烧录,最后探测不到了AXP152是怎么回事?

目前发现AXP152有几个不同版本,他的设备地址不太一样。我们在v0.7以后版本更新了AXP152驱动,在以后的开发中使用最新的驱动

使用特权

评论回复
74
heart蓝色CD|  楼主 | 2020-10-31 08:56 | 只看该作者
回复就哭哭 发表于 2020-10-30 23:13
楼主写的很详细,刚刚没耐心等待,已经没问题了。谢谢。

OK

使用特权

评论回复
75
sdlls| | 2020-11-1 20:29 | 只看该作者
共享的资料比较详细  谢谢                                 

使用特权

评论回复
76
1988020566| | 2020-11-1 20:29 | 只看该作者
非常感谢楼主分享                                 

使用特权

评论回复
77
youtome| | 2020-11-1 20:29 | 只看该作者
STM32H7很高端呢。                                    

使用特权

评论回复
78
dzfansman| | 2020-11-1 20:29 | 只看该作者
谢谢lz分享,很有用                                 

使用特权

评论回复
79
benjaminka| | 2020-11-1 20:29 | 只看该作者
资料够全的,多谢分享                                 

使用特权

评论回复
80
pmp| | 2020-11-1 20:29 | 只看该作者
资料下载了几个  好好收藏一下                                 

使用特权

评论回复
发新帖 本帖赏金 6.66元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则