]> rtime.felk.cvut.cz Git - mf6xx.git/commitdiff
Added DIO_read() function & Simple fix in mf624_read32(), mf624_read16().
authorRostislav Lisovy <lisovy@gmail.com>
Mon, 28 Mar 2011 23:31:09 +0000 (01:31 +0200)
committerRostislav Lisovy <lisovy@gmail.com>
Mon, 28 Mar 2011 23:31:09 +0000 (01:31 +0200)
src/uio/mf624/userspace/test_application/main.c [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index af3ae78..2265286
@@ -29,13 +29,23 @@ int BAR0_phys_addr;
 int BAR2_phys_addr;
 int BAR4_phys_addr;
 
+void print_8bin(int nr)
+{
+       int i;
+       for (i = 7; i >= 0; i--) {
+               printf("%d" , ((nr & (1 << i)) > 0));
+       }
+
+       printf("\n");
+}
+
 static inline int16_t mf624_read16(uint16_t *ptr)
 {
-       return *ptr;
+       return (volatile uint16_t) *ptr;
 }
 static inline int32_t mf624_read32(uint32_t *ptr)
 {
-       return *ptr;
+       return (volatile uint32_t) *ptr;
 }
 
 static inline void mf624_write16(uint16_t val, uint16_t *ptr)
@@ -53,6 +63,10 @@ void DIO_set(int16_t val)
        mf624_write16(val, ((uint16_t*) mf624_BAR2) + (DOUT_reg/2)); 
 }
 
+uint16_t DIO_read()
+{
+       return mf624_read16(((uint16_t*) mf624_BAR2) + (DOUT_reg/2)) & 0xF; 
+}
 
 int open_device(char* path) {
        status = open(path, O_RDWR);
@@ -280,6 +294,9 @@ int main(int argc, char* argv[])
        if (device_fd != -1) {
 
                while (1){
+                       printf("Reading DIO = ");
+                       print_8bin(DIO_read());
+                       
                        printf("Setting DIO to 0xff\n");
                        DIO_set(0xff);
                        sleep(1);