初级会员

- 积分
- 90
- 金钱
- 90
- 注册时间
- 2013-8-1
- 在线时间
- 0 小时
|
我问的问题就是。在程序里面我要像这样读取数据.
Display_Data[0][Collect_line][0]=(u8)GPIOB->IDR ;
Display_Data[0][Collect_line][1]=(u8)GPIOB->IDR ;
Display_Data[0][Collect_line][2]=(u8)GPIOB->IDR ;
Display_Data[0][Collect_line][3]=(u8)GPIOB->IDR ;
Display_Data[0][Collect_line][4]=(u8)GPIOB->IDR ;
Display_Data[0][Collect_line][5]=(u8)GPIOB->IDR ;
Display_Data[0][Collect_line][6]=(u8)GPIOB->IDR ;
这每一句C语言在汇编中是9步的指令( Display_Data是个3维数组):
0x08000C9E 486D LDR r0,[pc,#436] ; @0x08000E54
0x08000CA0 6800 LDR r0,[r0,#0x00]
0x08000CA2 496A LDR r1,[pc,#424] ; @0x08000E4C
0x08000CA4 6809 LDR r1,[r1,#0x00]
0x08000CA6 EB0102C1 ADD r2,r1,r1,LSL #3
0x08000CAA EB021101 ADD r1,r2,r1,LSL #4
0x08000CAE 4A68 LDR r2,[pc,#416] ; @0x08000E50
0x08000CB0 EB020181 ADD r1,r2,r1,LSL #2
0x08000CB4 F8810063 STRB r0,[r1,#0x63]
我就是想知道想72MHZ下这个样采集数据,可能这个过程中会包括取指令的时间、指令执行的时间、指令执行后信号传递到寄存器的时间(这其中可能经过很多环节,比如AHB、APB、总线仲裁等),最后才是信号从寄存器读取的时间。不知道我这样讲对不对。我就是想知道如果将IO口的数据直接赋给一个32位的变量能有多快。是不是这中间占据时间比较多的是AHB、APB、总线仲裁等 |
|