Root/plasma/gpio/gpio.c

1#include "plasma.h"
2
3#define MemoryRead(A) (*(volatile unsigned long*)(A))
4#define MemoryWrite(A,V) *(volatile unsigned long*)(A)=(V)
5
6
7int main(void)
8{
9  volatile unsigned char *data8;
10  volatile unsigned short *data16;
11  volatile unsigned int *data32;
12
13  
14  volatile unsigned char test8;
15  volatile unsigned short test16;
16  volatile unsigned int test32, tmp;
17  volatile unsigned long test64;
18
19/*
20   Operaciones de acceso a memoria
21*/
22
23  data8 = (unsigned char *)(0x20000410);
24  data16 = (unsigned short *)(0x20000210);
25  data32 = (unsigned int *)(0x20000330);
26
27  *data8 = 0x44;
28  data8++;
29  *data8 = 0x66;
30  data8++;
31  *data8 = 0x55;
32  data8++;
33  *data8 = 0x22;
34  data8++;
35  *data8 = 0x11;
36
37  *data16 = 0x2020;
38  data16++;
39  *data16 = 0x2121;
40  data16++;
41  *data16 = 0x2222;
42  data16++;
43
44  *data32 = 0x30303030;
45  data32++;
46  *data32 = 0x31313131;
47
48
49  test8 = *data8;
50  test16 = *data16;
51  test32 = *data32;
52  data8 += 4;
53  data16++;
54  data32++;
55  test8 = *data8;
56  test16 = *data16;
57  test32 = *data32;
58
59
60  data32 = (unsigned int *)(0x20000000);
61  *data32 = 0x55555555;
62  test32 = *data32;
63  data32 = (unsigned int *)(0x20000020);
64  test32 = *data32;
65
66
67/*
68   Operaciones aritméticas
69*/
70
71  
72  test32 = test32 + test8;
73  test32 = 0x11111111 + test32;
74  test32 = 0x1111 + test32;
75  test32 = test32 + *data32;
76
77  test64 = test32 * test8;
78  test64 = 0x11111111 * test32;
79  test64 = 0x1111 * test32;
80  test64 = test32 * *data32;
81
82  
83
84
85  while(1){
86  
87  }
88  return 0;
89}
90
91

Archive Download this file

Branches:
master



interactive