⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basic_driver_completion.html

📁 ADI 公司blackfin系列的用户使用文挡。
💻 HTML
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head>  <title></title>  <link rel="stylesheet" media="screen" type="text/css" href="./style.css" />  <link rel="stylesheet" media="screen" type="text/css" href="./design.css" />  <link rel="stylesheet" media="print" type="text/css" href="./print.css" />  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body><a href=start.html>start</a></br><h4><a name="basic_driver_completion" id="basic_driver_completion">Basic Driver Completion</a></h4><div class="level4"><p>To complete the process of creating a basic device driver the <strong>fops</strong> table needs the <strong>open</strong>, <strong>close</strong>, <strong>read</strong> and <strong>write</strong> references completed.</p><p> This can be done in the <strong>module_init</strong> function.</p><p>Following this the driver needs to be added to the Kernel Configuration and Build System.</p><p>A modified <strong>module_init</strong> function is shown here</p><pre class="code c">  <span class="kw4">static</span> <span class="kw4">int</span> __init scmd_init<span class="br0">&#40;</span><span class="kw4">void</span><span class="br0">&#41;</span><span class="br0">&#123;</span>                                       <span class="kw4">int</span> ret;      <span class="kw4">int</span> i;                                                             <span class="coMULTI">/* set up the initial data */</span>                        <span class="kw1">for</span> <span class="br0">&#40;</span> i = <span class="nu0">0</span> ; i &lt; SCMD_SIZE ; i++ <span class="br0">&#41;</span> <span class="br0">&#123;</span>                    scmd_data<span class="br0">&#91;</span>i<span class="br0">&#93;</span> = <span class="st0">'0'</span>+i;                             <span class="br0">&#125;</span>                                                        <span class="co1">//SET_MODULE_OWNER(&amp;scmd_driver_fops); //not now in 2.6 kernels</span>                                                                           scmd_driver_fops.<span class="me1">read</span> = scmd_read;      scmd_driver_fops.<span class="me1">write</span> = scmd_write;      scmd_driver_fops.<span class="me1">open</span> = scmd_open;      scmd_driver_fops.<span class="me1">release</span> = scmd_close;&nbsp;&nbsp;      ret = register_chrdev<span class="br0">&#40;</span>scmd_major, SCMD_DEV,                                                          &amp;scmd_driver_fops<span class="br0">&#41;</span>;                  printk<span class="br0">&#40;</span><span class="st0">" Driver scmd_basic registered .. ret %d <span class="es0">\n</span>"</span>,ret<span class="br0">&#41;</span>;            <span class="kw1">if</span> <span class="br0">&#40;</span> ret &gt; <span class="nu0">0</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>                                                         scmd_major = ret;                                                 ret = <span class="nu0">0</span>;                                                                <span class="br0">&#125;</span>                                                                    <span class="kw1">return</span> ret;                                                      <span class="br0">&#125;</span>                                                                  &nbsp;</pre></div></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -