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)
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);
if (device_fd != -1) {
while (1){
+ printf("Reading DIO = ");
+ print_8bin(DIO_read());
+
printf("Setting DIO to 0xff\n");
DIO_set(0xff);
sleep(1);