我正在尝试在Zedboard SoC上运行的Linux上从FPGA映射内存。我可以在命令行上使用 devmem 正确读取内容,但是当尝试通过C读取内容时出现分段错误。
下面显示的准系统代码在尝试打印内存内容时引发分段错误。我小心使用页面大小的倍数以避免出现问题:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/mman.h>
typedef unsigned int u32;
int main()
{
int page_size = sysconf(_SC_PAGESIZE);
printf("PAGESIZE = %d\n\r", page_size);
off_t bram_pbase = 0x42000000; // physical base address
u32 *bram32_vptr;
int fd = open("/dev/mem", O_SYNC);
printf("FD opened\n\r");
bram32_vptr = (u32 *)mmap(NULL, 2*page_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, bram_pbase);
printf("%d \n\r", bram32_vptr[0]);
close(fd);
return 0;
}
为什么我不能读取内存?
答案 0 :(得分:2)
我认为问题是传递给打开的标志 它应该看起来像这样
<div id="app">
<textarea cols="10" rows="10" disabled>{{ qComputed }}</textarea>
<input type="text" v-model="editText">
</div>
new Vue({
el: "#app",
data: {
q: "My name is $John Doe$ from NYC",
editText: null,
disabled: true
},
computed: {
qComputed(){
let splittedText = this.q.split('$')
splittedText[1] = this.editText
return splittedText.join` `
}
}
})