共2条
1/1 1 跳转至页
LPC2xxx,ARM LPC2xxx ARM的I/O速度实际测试结果,附程序...
问
刚刚闲着没事, 用ARM_LPC2136 和 AVR_Mega128 比较了一下
CPU-2136, 使用如下程序: ADS编译.
while(1) 主频44M, I/O 只有 650K Hz 的速度.
{
IOCLR |= LED1; //IODIR 已经设置为出.
IOSET |= LED1; //(为了提高上升速度,俺又在LED1上, 上拉了2K的电阻.)
}
CPU-Mega128
使用如下程序, IAR编译.
while(1) 主频8M, I/O 就有 680K Hz 的速度了.
PORTD ^= 0x01; //PD0 已经设置为出.
真是搞不懂,为什么LPC2xxx的速度为何上不去.
俺正想用2138来做读写一个大的并口存储东东呢.
这叫俺怎么敢用啊? 还是有什么地方没做对啊?如何提高读写速度呢?
LPC2xxx ARM的I/O为何如此的慢? 答 1: 关注... 答 2: LPC214X 速度比较高 答 3: LPC214X 速度比较高? 从何说起啊?哪位要是有用过AT91SAM7系列的, 试一下,看看有多快? 答 4: 很怀疑楼主实验的真实性,LPC214X的IO不是很快(最快)的吗???看有些介绍是这么说的... 答 5: 很怀疑楼主实验的真实性? 不会吧? 等等发个图上来. 答 6: 俺贴个图片上来.to: hotpower 确实是650 KHz. 最好亲自试一下. 答 7: 以下是实验板: 答 8: 严重怀疑楼主,没有把IO时钟初始化弄高上去~~~~~~ 答 9: 空口说没用的, 拿个实际的数据出来看一下.设置应该没错的了. 答 10: 程序放在ram里执行把循环写io的程序放在ram里执行应该快很多 答 11: LPC21xx也可以把程序放在ram里执行吗?具体怎么做啊? 能不能给个程序参考啊? 答 12: 可以keil ARM:
void my_prog_func (...) __ram
{
...
}
答 13: 谢谢 云中月8888,可在ADS中又如何做啊? 答 14: 请教云中月8888: 类似__ram如何在realview上实现??? 答 15: 用分散加载ads和realview一样,用分散加载的方法,具体我没用过。看看以前的帖子。 答 16: 请问hotpower在realview里可以用Multi-ICE仿真器吗? 答 17: 对楼主提几个问题1、VPBDIV设了多少?如果只有1/4分频,IO是很慢的,大概写一次要28周期左右,如果设为不分频,则写一次要7周期,还是有些慢。一般最高也只能到差不多4MHz。
2、while循环浪费了不少时间,建议在循环里多复制几次那两条指令。至于放到RAM中运行,那没有必要,因为LPC21xx系列有MAM,包含了128位取指缓存和128位分支缓存,像这样的语句,取指不会影响运行速度,不过需要正确设置。
3、对速度要求高可以用LPC214x,用其FIO寄存器来操作,写一次只需2周期。我用它来模拟时序读CF卡(8位方式),每秒能读3M多,中间还插了不少NOP。
答 18: I/O口 怎么也上不到2M, 1.7 M左右.用各位介绍的方法, I/O口 怎么也上不到3M, 1.7M左右.
真是搞不懂啊,I/O那么慢,又没DMA, 到底能用来做什么啊? 答 19: rewhile(1) 主频44M, I/O 只有 650K Hz 的速度.
{
IOCLR |= LED1; //IODIR 已经设置为出.
IOSET |= LED1; //(为了提高上升速度,俺又在LED1上, 上拉了2K的电阻.)
}
实在没有必要用与操作符,这样相当于读一次又写一次寄存器,时间多了1倍。
CPU-2136, 使用如下程序: ADS编译.
while(1) 主频44M, I/O 只有 650K Hz 的速度.
{
IOCLR |= LED1; //IODIR 已经设置为出.
IOSET |= LED1; //(为了提高上升速度,俺又在LED1上, 上拉了2K的电阻.)
}
CPU-Mega128
使用如下程序, IAR编译.
while(1) 主频8M, I/O 就有 680K Hz 的速度了.
PORTD ^= 0x01; //PD0 已经设置为出.
真是搞不懂,为什么LPC2xxx的速度为何上不去.
俺正想用2138来做读写一个大的并口存储东东呢.
这叫俺怎么敢用啊? 还是有什么地方没做对啊?如何提高读写速度呢?
LPC2xxx ARM的I/O为何如此的慢? 答 1: 关注... 答 2: LPC214X 速度比较高 答 3: LPC214X 速度比较高? 从何说起啊?哪位要是有用过AT91SAM7系列的, 试一下,看看有多快? 答 4: 很怀疑楼主实验的真实性,LPC214X的IO不是很快(最快)的吗???看有些介绍是这么说的... 答 5: 很怀疑楼主实验的真实性? 不会吧? 等等发个图上来. 答 6: 俺贴个图片上来.to: hotpower 确实是650 KHz. 最好亲自试一下. 答 7: 以下是实验板: 答 8: 严重怀疑楼主,没有把IO时钟初始化弄高上去~~~~~~ 答 9: 空口说没用的, 拿个实际的数据出来看一下.设置应该没错的了. 答 10: 程序放在ram里执行把循环写io的程序放在ram里执行应该快很多 答 11: LPC21xx也可以把程序放在ram里执行吗?具体怎么做啊? 能不能给个程序参考啊? 答 12: 可以keil ARM:
void my_prog_func (...) __ram
{
...
}
答 13: 谢谢 云中月8888,可在ADS中又如何做啊? 答 14: 请教云中月8888: 类似__ram如何在realview上实现??? 答 15: 用分散加载ads和realview一样,用分散加载的方法,具体我没用过。看看以前的帖子。 答 16: 请问hotpower在realview里可以用Multi-ICE仿真器吗? 答 17: 对楼主提几个问题1、VPBDIV设了多少?如果只有1/4分频,IO是很慢的,大概写一次要28周期左右,如果设为不分频,则写一次要7周期,还是有些慢。一般最高也只能到差不多4MHz。
2、while循环浪费了不少时间,建议在循环里多复制几次那两条指令。至于放到RAM中运行,那没有必要,因为LPC21xx系列有MAM,包含了128位取指缓存和128位分支缓存,像这样的语句,取指不会影响运行速度,不过需要正确设置。
3、对速度要求高可以用LPC214x,用其FIO寄存器来操作,写一次只需2周期。我用它来模拟时序读CF卡(8位方式),每秒能读3M多,中间还插了不少NOP。
答 18: I/O口 怎么也上不到2M, 1.7 M左右.用各位介绍的方法, I/O口 怎么也上不到3M, 1.7M左右.
真是搞不懂啊,I/O那么慢,又没DMA, 到底能用来做什么啊? 答 19: rewhile(1) 主频44M, I/O 只有 650K Hz 的速度.
{
IOCLR |= LED1; //IODIR 已经设置为出.
IOSET |= LED1; //(为了提高上升速度,俺又在LED1上, 上拉了2K的电阻.)
}
实在没有必要用与操作符,这样相当于读一次又写一次寄存器,时间多了1倍。
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |