Browse Source

+ dummy memory

DLIMIKO 1 year ago
parent
commit
df6d88f4fd
3 changed files with 97 additions and 0 deletions
  1. 7 0
      README.md
  2. 36 0
      include/memory_dummy.h
  3. 54 0
      src/memory_dummy.c

+ 7 - 0
README.md

@@ -107,6 +107,13 @@ memory_ec20.init(ONE_WIRE_GPIO_Port, ONE_WIRE_Pin);  //applicatin level function
 nbus_init_memory_driver(&memory_ec20);  // pass memory driver to nBus
 ```
 
+Note: if no memory used, initlialize it as memory dummy driver.
+
+```c
+#include "memory_dummy.h"
+nbus_init_memory_driver(getDummyMemDriver());  // pass dummy memory driver to nBus
+```
+
 ***Run application stack***
 The function ``nbus_stack()`` contains of application loop.
 ```c

+ 36 - 0
include/memory_dummy.h

@@ -0,0 +1,36 @@
+/*
+ * memory_dummy.h
+ *
+ *  Created on: July 13, 2024
+ *      Author: Matus Necas
+ */
+
+#ifndef INC_MEM_DUMMY_H_
+#define INC_MEM_DUMMY_H_
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include "nbus_memory.h"
+
+    nBus_MemoryDriver *getDummyMemDriver();
+
+    uint8_t dummy_mem_init(void * gpio_port, uint16_t gpio_pin);
+    uint32_t dummy_mem_read_word(uint16_t address);
+    uint16_t dummy_mem_read_half_word(uint16_t address);
+    uint8_t dummy_mem_read_byte(uint16_t address);
+
+    uint8_t dummy_mem_write_data(uint8_t *data, uint16_t address, uint8_t length);
+
+    uint8_t dummy_mem_read_id(uint8_t *data);
+    uint32_t dummy_mem_get_capacity(void);
+    
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* INC_MEM_DUMMY_H_ */

+ 54 - 0
src/memory_dummy.c

@@ -0,0 +1,54 @@
+#include "memory_dummy.h"
+
+nBus_MemoryDriver dummy_memory = {
+    dummy_mem_init,       dummy_mem_read_word, dummy_mem_read_half_word, dummy_mem_read_byte, 
+    dummy_mem_write_data, dummy_mem_read_id,   dummy_mem_get_capacity,   
+};
+
+nBus_MemoryDriver *getDummyMemDriver()
+{
+    return &dummy_memory;
+}
+
+uint8_t dummy_mem_init(void * gpio_port, uint16_t gpio_pin)
+{
+    return 1;
+}
+
+uint32_t dummy_mem_read_word(uint16_t address)
+{
+    return 0xFFFFFFFF;
+}
+
+uint16_t dummy_mem_read_half_word(uint16_t address)
+{
+    return 0xFFFF;
+}
+uint8_t dummy_mem_read_byte(uint16_t address)
+{
+    return 0xFF;
+}
+
+uint8_t dummy_mem_write_data(uint8_t *data, uint16_t address, uint8_t length)
+{
+    return 0;
+}
+
+uint8_t dummy_mem_read_id(uint8_t *data)
+{
+    data[0] = 0xFF;
+    data[1] = 0xFF;
+    data[2] = 0xFF;
+    data[3] = 0xFF;
+    data[4] = 0xFF;
+    data[5] = 0xFF;
+    data[6] = 0xFF;
+    data[7] = 0xFF;
+    
+    return 8;
+}
+
+uint32_t dummy_mem_get_capacity(void)
+{
+    return 0;
+}