diff --git a/uboot-compiler/shmbuffer/main b/uboot-compiler/shmbuffer/main
new file mode 100755
index 0000000000000000000000000000000000000000..d1a549d6ca963e6a11aeb791da7697669ee3c981
Binary files /dev/null and b/uboot-compiler/shmbuffer/main differ
diff --git a/uboot-compiler/shmbuffer/main.c b/uboot-compiler/shmbuffer/main.c
new file mode 100644
index 0000000000000000000000000000000000000000..0aadcad4556e27fc1e811633093028f0ad685a81
--- /dev/null
+++ b/uboot-compiler/shmbuffer/main.c
@@ -0,0 +1,31 @@
+#include<stdio.h>
+#include<stddef.h>
+#include<sys/mman.h>
+#include<fcntl.h>
+
+#define SHMADDR 0x3F000000
+
+int main(int argc, char *argv[])
+{
+    int fd;
+    int * memaddr;
+
+    fd = open("/dev/mem", O_RDWR);
+
+    if (fd == -1)
+    {
+        printf("can not access /dev/mem\n" );
+        return -1;
+    }
+
+    memaddr =
+    (int*)mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, SHMADDR);
+    if (memaddr == MAP_FAILED)
+    {
+        printf("mmap failed\n" );
+        return -1;
+    }
+    printf("value=%d\n", *memaddr);
+    
+
+}
\ No newline at end of file