我试图在VIM中创建一个用户定义的命令,它接受一个参数并使用用户提供的参数调用一个函数.看似简单,但我无法让它工作.这是我的foo.vim插件的代码:
function! s:MyFunc(myParam)
do something
endfunction
command! -nargs=1 MyCommand call s:MyFunc(myParam)
Run Code Online (Sandbox Code Playgroud)
当我在这样的VIM缓冲区中尝试这个时:
:MyCommand exampleParam
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
E121: Undefined variable: myParam
E116: Invalid arguments for function <SNR>7_MyFunc
Run Code Online (Sandbox Code Playgroud)
这有什么不对?我该如何解决?任何帮助是极大的赞赏.
来自LDD3/Ch.15 /"使用remap_pfn_range"和"简单实现"部分,pfn等同于vm_pgoff字段.我很困惑.怎么会这样?
请注意,vm_pgoff描述为:
文件中区域的偏移量,以页为单位.映射文件或设备时,这是该区域中映射的第一页的文件位置.
因此,如果映射的第一页对应于文件的第一页(我认为这很常见),vm_pgoff将为0.正确吗?如果是这样,这似乎不是remap_pfn_range()的pfn参数的正确值.我在这里错过了什么?什么是正确的价值?为便于参考,我正在复制以下LDD3的相关代码(第426页)
static int simple_remap_mmap(struct file *filp, struct vm_area_struct *vma)
{
if (remap_pfn_range(vma, vma->vm_start, vm->vm_pgoff,
vma->vm_end - vma->vm_start,
vma->vm_page_prot))
return -EAGAIN;
...
}
Run Code Online (Sandbox Code Playgroud) 我知道这并不是什么新鲜事,已经完成了好几次。但是我正在寻找一些参考实现(甚至只是参考设计)作为“最佳实践指南”。我们有一个实时的嵌入式环境,其想法是能够使用“调试外壳”来调用某些命令。示例:“ SomeDevice print reg xyz”将请求SomeDevice子系统打印名为xyz的寄存器的值。
以下命令工作正常:
$>cscope -b -R
Run Code Online (Sandbox Code Playgroud)
但是,反向索引的选项不起作用:
$>cscope -b -q -k -R
Input file specified two times.
cscope: cannot create inverted index; ignoring -q option
cscope: removed files ncscope.in.out and ncscope.po.out
Run Code Online (Sandbox Code Playgroud)
我用Google搜索了一下,发现了一些点击.但找不到任何答案或解决方案.任何见解都非常感谢.
如何确定设备内存的页面帧号?来自LDD3/Ch.15 /"使用remap_pfn_range"和"简单实现"部分,pfn等同于vm_pgoff字段.我很困惑.怎么会这样?
请注意,vm_pgoff描述为:
文件中区域的偏移量,以页为单位.映射文件或设备时,这是该区域中映射的第一页的文件位置.
因此,如果映射的第一页对应于文件的第一页(我认为这很常见),vm_pgoff将为0.正确吗?如果是这样,这似乎不是remap_pfn_range()的pfn参数的正确值.我在这里错过了什么?什么是正确的价值?为便于参考,我正在复制以下LDD3的相关代码(第426页)
static int simple_remap_mmap(struct file *filp, struct vm_area_struct *vma)
{
if (remap_pfn_range(vma, vma->vm_start, vm->vm_pgoff,
vma->vm_end - vma->vm_start,
vma->vm_page_prot))
return -EAGAIN;
...
}
Run Code Online (Sandbox Code Playgroud) linux ×2
vim ×2
command-line ×1
cscope ×1
device ×1
embedded ×1
kernel ×1
linux-kernel ×1
shell ×1