20170929在stm32f103zet6 RTT上扩展外部SRAM
来源:互联网 发布:2014matlab中对角矩阵 编辑:程序博客网 时间:2024/06/16 02:35
开门见山,在f103上测试EXT___SRAM。意法的MCU在100Pin及以上的型号里都有FSMC功能集成,这次在RTT上测试一下对EXT_SRAM的支持。
话不多说,准备环境:
1,f103zet6方案的开发板,我用的是神州III号;
2,MDK IDE V4.73.0.0(WIN7 X64)
3,RTT V2.1.0 SDK
4,JLINK V8
5,VSC IDE编辑器
OK,让RTT先在开发板上跑起来。开发板时钟和RTT默认一致,不用修改;
1,查看代码,如下:
在rtconfig.h里面L75找到串口对应的宏定义,可以发现RTT里是将FINSH映射到uart1;
#define RT_CONSOLE_DEVICE_NAME "uart1"
在usart.c中L23找找到TX、RX对应的MCU引脚下为GPIOA9、GPIOA10,如下;
/* USART1 */#define UART1_GPIO_TX GPIO_Pin_9#define UART1_GPIO_RX GPIO_Pin_10#define UART1_GPIO GPIOA
2,同样在usart.c中查看串口配置,115200 8N1;
3,用串口TTL连接到GPIOA9、GPIOA10,得在开发板232芯片前连接出来,这样就可以通过串口终端查看打印信息鸟;
4,这里开发板上有4个LED,我将它们中的2个重新定向到RTT中的LED指示灯上,找到led.c中L29行处,修改对应的IO端口,如下;
#define led1_rcc RCC_APB2Periph_GPIOF#define led1_gpio GPIOF#define led1_pin (GPIO_Pin_8)#define led2_rcc RCC_APB2Periph_GPIOF#define led2_gpio GPIOF#define led2_pin (GPIO_Pin_9)
这样,LED就可以在RTT上闪烁起来。这时查看一下当前的memery参数,如图;
这里可以看到总memery为58520,跟f103内部64K RAM接近;
5,今天的重点戏—FSMC接口,如图,
在stm32f10x_fsmc.h中将FSMC的接口GPIO与开发板对应起来,我手上的开发板与RTT内一致,这里不作修改,如果需要重新配置GPIO口在L72开始修改即可;
6,开发板上的SRAM型号为IS61LV25616 256Kx16bit (即512KByte),实际上RTT里的实例也是512KB外部SRAM,但这里我对程序做一些小的调整,让编译器自己去算总SRAM大小,在board.h中作如下添加;
#define STM32_EXT_SRAM_END (STM32_EXT_SRAM_BEGIN + STM32_EXT_SRAM_SIZE * 1024)
当然,还得提前定义一个宏,
#define STM32_EXT_SRAM_SIZE 512
7,打开RTT的外部SRAM的支持,在board.h中L28修改值为1如下;
#define STM32_EXT_SRAM 1
8,编译&&下载,如图。
对比未打开外部SRAM的大小,说明外部SRAM被RTT正常跑起来,同时LED开始闪烁。
(全文完)
- 20170929在stm32f103zet6 RTT上扩展外部SRAM
- uC/OS--II在STM32F103ZET6上的移植
- STM32F1_FSMC读写外部SRAM
- 20170812在STM32F103RB上测试RTT硬实时OS
- 100脚的STM32F407VE单片机使用FSMC扩展外部SRAM芯片IS62WV51216BLL
- 【DSP】TMS320F28335 扩展SRAM
- 基于stm32f103zet6的外部中断学习
- 使用Keil在stm32f103ZET6上移植ucos-ii并利用LED灯测试
- SRAM和EEPROM在使用上的不同
- ISSI IS61LV6416 的SRAM在AM3358 WinCE上读写操作
- ucosii下使用外部SRAM
- STM32 FSMC 外部使用SRAM
- 外部SRAM实验,让STM32的外部SRAM操作跟内部SRAM一样
- 外部SRAM实验,让STM32的外部SRAM操作跟内部SRAM一样
- RTT
- rtt
- emWin使用外部SRAM的方法
- emWin使用外部SRAM的方法
- Spring cloud + Swarm mode 实战二:部署微服务
- EmptyRecyclerView 数据为空时显示指定view
- select动态添加option与动态设置下拉框默认选项(selected)的问题(原创)
- Genymotion配置和安装
- IP协议的主要特点与格式
- 20170929在stm32f103zet6 RTT上扩展外部SRAM
- iOS开发 ☞ 关于带系统导航栏坐标的问题
- 20行代码能干嘛?
- Android中建造者(builder)模式
- Redis中RDB持久化
- Android SurfaceFligner Vsync信号 Jni/C++调用实现
- OplogThread: Last entry no longer in oplog cannot recover!
- 堆排序算法的实现(HeapSort)
- 转-C++快速入门