??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品国色综合久久,久久婷婷五月综合97色一本一本 ,国产精品一区二区久久http://www.shnenglu.com/agaric/category/5702.htmlC元素zh-cnFri, 30 May 2008 17:22:39 GMTFri, 30 May 2008 17:22:39 GMT60一Ds3c lcd framebuffer 的代?/title><link>http://www.shnenglu.com/agaric/archive/2008/04/17/47331.html</link><dc:creator>菌子</dc:creator><author>菌子</author><pubDate>Thu, 17 Apr 2008 04:52:00 GMT</pubDate><guid>http://www.shnenglu.com/agaric/archive/2008/04/17/47331.html</guid><wfw:comment>http://www.shnenglu.com/agaric/comments/47331.html</wfw:comment><comments>http://www.shnenglu.com/agaric/archive/2008/04/17/47331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/agaric/comments/commentRss/47331.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/agaric/services/trackbacks/47331.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #008080;">  1</span> <span style="color: #0000ff;">int</span><span style="color: #000000;"> __init s3c_fb_probe(</span><span style="color: #0000ff;">struct</span><span style="color: #000000;"> platform_device </span><span style="color: #000000;">*</span><span style="color: #000000;">pdev)<br></span><span style="color: #008080;">  2</span> <span style="color: #000000;">{<br></span><span style="color: #008080;">  3</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">char</span><span style="color: #000000;"> driver_name[]</span><span style="color: #000000;">=</span><span style="color: #000000;">"</span><span style="color: #000000;">s3c_fb</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br></span><span style="color: #008080;">  4</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> ret;<br></span><span style="color: #008080;">  5</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> index</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">  6</span> <span style="color: #000000;"><br></span><span style="color: #008080;">  7</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(index</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">; index</span><span style="color: #000000;"><</span><span style="color: #000000;">S3C_FB_NUM; index</span><span style="color: #000000;">++</span><span style="color: #000000;">){                   </span><span style="color: #008000;">//</span><span style="color: #008000;">遍历每一个fb,我们里只有一个lcd.</span><span style="color: #008000;"><br></span><span style="color: #008080;">  8</span> <span style="color: #008000;"></span><span style="color: #000000;">        s3c_fb_init_fbinfo(</span><span style="color: #000000;">&</span><span style="color: #000000;">info[index], driver_name, index);<br></span><span style="color: #008080;">  9</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 10</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(index</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">){                                          </span><span style="color: #008000;">//</span><span style="color: #008000;">操作主lcd</span><span style="color: #008000;"><br></span><span style="color: #008080;"> 11</span> <span style="color: #008000;"></span><span style="color: #000000;">            s3c_fb_backlight_power(</span><span style="color: #000000;">1</span><span style="color: #000000;">);                         </span><span style="color: #008000;">//</span><span style="color: #008000;">开启背光,lcd甉|源,开启背光等?          </span><span style="color: #008000;"><br></span><span style="color: #008080;"> 12</span> <span style="color: #008000;"></span><span style="color: #000000;">            s3c_fb_lcd_power(</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br></span><span style="color: #008080;"> 13</span> <span style="color: #000000;">            s3c_fb_backlight_level(DEFAULT_BACKLIGHT_LEVEL);<br></span><span style="color: #008080;"> 14</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 15</span> <span style="color: #000000;">            dprintk(</span><span style="color: #000000;">"</span><span style="color: #000000;">dev FB init\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;"> 16</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 17</span> <span style="color: #000000;">            </span><span style="color: #008000;">//</span><span style="color: #008000;">映射内存区域</span><span style="color: #008000;"><br></span><span style="color: #008080;"> 18</span> <span style="color: #008000;"></span><span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (</span><span style="color: #000000;">!</span><span style="color: #000000;">request_mem_region((unsigned </span><span style="color: #0000ff;">long</span><span style="color: #000000;">)S3C_VA_LCD, SZ_1M, </span><span style="color: #000000;">"</span><span style="color: #000000;">s3c-lcd</span><span style="color: #000000;">"</span><span style="color: #000000;">)) {<br></span><span style="color: #008080;"> 19</span> <span style="color: #000000;">                ret </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #000000;">EBUSY;<br></span><span style="color: #008080;"> 20</span> <span style="color: #000000;">                </span><span style="color: #0000ff;">goto</span><span style="color: #000000;"> dealloc_fb;<br></span><span style="color: #008080;"> 21</span> <span style="color: #000000;">            }<br></span><span style="color: #008080;"> 22</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 23</span> <span style="color: #000000;">            dprintk(</span><span style="color: #000000;">"</span><span style="color: #000000;">got LCD region\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;"> 24</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 25</span> <span style="color: #000000;">            </span><span style="color: #008000;">//</span><span style="color: #008000;">打开lcd_clock</span><span style="color: #008000;"><br></span><span style="color: #008080;"> 26</span> <span style="color: #008000;"></span><span style="color: #000000;">            lcd_clock </span><span style="color: #000000;">=</span><span style="color: #000000;"> clk_get(NULL, </span><span style="color: #000000;">"</span><span style="color: #000000;">lcd</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;"> 27</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (</span><span style="color: #000000;">!</span><span style="color: #000000;">lcd_clock) {<br></span><span style="color: #008080;"> 28</span> <span style="color: #000000;">                printk(KERN_INFO </span><span style="color: #000000;">"</span><span style="color: #000000;">failed to get lcd clock source\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;"> 29</span> <span style="color: #000000;">                ret </span><span style="color: #000000;">=</span><span style="color: #000000;">  </span><span style="color: #000000;">-</span><span style="color: #000000;">ENOENT;<br></span><span style="color: #008080;"> 30</span> <span style="color: #000000;">                </span><span style="color: #0000ff;">goto</span><span style="color: #000000;"> release_irq;<br></span><span style="color: #008080;"> 31</span> <span style="color: #000000;">            }<br></span><span style="color: #008080;"> 32</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 33</span> <span style="color: #000000;">            clk_enable(lcd_clock);<br></span><span style="color: #008080;"> 34</span> <span style="color: #000000;">            printk(</span><span style="color: #000000;">"</span><span style="color: #000000;">S3C_LCD clock got enabled :: %ld.%03ld Mhz\n</span><span style="color: #000000;">"</span><span style="color: #000000;">, print_mhz(clk_get_rate(lcd_clock)));<br></span><span style="color: #008080;"> 35</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 36</span> <span style="color: #000000;">            msleep(</span><span style="color: #000000;">5</span><span style="color: #000000;">);<br></span><span style="color: #008080;"> 37</span> <span style="color: #000000;">        }<br></span><span style="color: #008080;"> 38</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 39</span> <span style="color: #000000;">        </span><span style="color: #008000;">//</span><span style="color: #008000;">甌昑֭</span><span style="color: #008000;"><br></span><span style="color: #008080;"> 40</span> <span style="color: #008000;"></span><span style="color: #000000;">        </span><span style="color: #008000;">/*</span><span style="color: #008000;"> Initialize video memory </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;"> 41</span> <span style="color: #000000;">        ret </span><span style="color: #000000;">=</span><span style="color: #000000;"> s3c_fb_map_video_memory(</span><span style="color: #000000;">&</span><span style="color: #000000;">info[index]);<br></span><span style="color: #008080;"> 42</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (ret) {<br></span><span style="color: #008080;"> 43</span> <span style="color: #000000;">            printk(</span><span style="color: #000000;">"</span><span style="color: #000000;">Failed to allocate video RAM: %d\n</span><span style="color: #000000;">"</span><span style="color: #000000;">, ret);<br></span><span style="color: #008080;"> 44</span> <span style="color: #000000;">            ret </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #000000;">ENOMEM;<br></span><span style="color: #008080;"> 45</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">goto</span><span style="color: #000000;"> release_clock;<br></span><span style="color: #008080;"> 46</span> <span style="color: #000000;">        }<br></span><span style="color: #008080;"> 47</span> <span style="color: #000000;">        dprintk(</span><span style="color: #000000;">"</span><span style="color: #000000;">got video memory\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;"> 48</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 49</span> <span style="color: #000000;">        </span><span style="color: #008000;">//</span><span style="color: #008000;">初始化寄存器Q这里与具体的设备有兟?/span><span style="color: #008000;"><br></span><span style="color: #008080;"> 50</span> <span style="color: #008000;"></span><span style="color: #000000;">        ret </span><span style="color: #000000;">=</span><span style="color: #000000;"> s3c_fb_init_registers(</span><span style="color: #000000;">&</span><span style="color: #000000;">info[index]);<br></span><span style="color: #008080;"> 51</span> <span style="color: #000000;">        ret </span><span style="color: #000000;">=</span><span style="color: #000000;"> s3c_fb_check_var(</span><span style="color: #000000;">&</span><span style="color: #000000;">info[index].fb.var, </span><span style="color: #000000;">&</span><span style="color: #000000;">info[index].fb);<br></span><span style="color: #008080;"> 52</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 53</span> <span style="color: #000000;">        </span><span style="color: #008000;">//</span><span style="color: #008000;">所谓的色表Q调色盘Q)Q不清除是干啥的?/span><span style="color: #008000;"><br></span><span style="color: #008080;"> 54</span> <span style="color: #008000;"></span><span style="color: #000000;">        </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(index</span><span style="color: #000000;"><</span><span style="color: #000000;">2</span><span style="color: #000000;">){<br></span><span style="color: #008080;"> 55</span> <span style="color: #000000;">            </span><span style="color: #008000;">/*</span><span style="color: #008000;"> 2007-01-09-Tue. for RGB 8-8-8 palette</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;"> 56</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(fb_alloc_cmap(</span><span style="color: #000000;">&</span><span style="color: #000000;">info[index].fb.cmap, </span><span style="color: #000000;">256</span><span style="color: #000000;">, </span><span style="color: #000000;">0</span><span style="color: #000000;">)</span><span style="color: #000000;"><</span><span style="color: #000000;">0</span><span style="color: #000000;">){<br></span><span style="color: #008080;"> 57</span> <span style="color: #000000;">                </span><span style="color: #0000ff;">goto</span><span style="color: #000000;"> dealloc_fb;<br></span><span style="color: #008080;"> 58</span> <span style="color: #000000;">            }<br></span><span style="color: #008080;"> 59</span> <span style="color: #000000;">        }<br></span><span style="color: #008080;"> 60</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">else</span><span style="color: #000000;">{<br></span><span style="color: #008080;"> 61</span> <span style="color: #000000;">            </span><span style="color: #008000;">/*</span><span style="color: #008000;"> 2007-01-09-Tue. for RGB 8-8-8 palette</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;"> 62</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(fb_alloc_cmap(</span><span style="color: #000000;">&</span><span style="color: #000000;">info[index].fb.cmap, </span><span style="color: #000000;">16</span><span style="color: #000000;">, </span><span style="color: #000000;">0</span><span style="color: #000000;">)</span><span style="color: #000000;"><</span><span style="color: #000000;">0</span><span style="color: #000000;">){<br></span><span style="color: #008080;"> 63</span> <span style="color: #000000;">                </span><span style="color: #0000ff;">goto</span><span style="color: #000000;"> dealloc_fb;<br></span><span style="color: #008080;"> 64</span> <span style="color: #000000;">            }<br></span><span style="color: #008080;"> 65</span> <span style="color: #000000;">        }<br></span><span style="color: #008080;"> 66</span> <span style="color: #000000;">        </span><span style="color: #008000;">//</span><span style="color: #008000;">注册framebuffer??</span><span style="color: #008000;"><br></span><span style="color: #008080;"> 67</span> <span style="color: #008000;"></span><span style="color: #000000;">        ret </span><span style="color: #000000;">=</span><span style="color: #000000;"> register_framebuffer(</span><span style="color: #000000;">&</span><span style="color: #000000;">info[index].fb);<br></span><span style="color: #008080;"> 68</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (ret </span><span style="color: #000000;"><</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">) {<br></span><span style="color: #008080;"> 69</span> <span style="color: #000000;">            printk(KERN_ERR </span><span style="color: #000000;">"</span><span style="color: #000000;">Failed to register framebuffer device: %d\n</span><span style="color: #000000;">"</span><span style="color: #000000;">, ret);<br></span><span style="color: #008080;"> 70</span> <span style="color: #000000;">            </span><span style="color: #0000ff;">goto</span><span style="color: #000000;"> free_video_memory;<br></span><span style="color: #008080;"> 71</span> <span style="color: #000000;">        }<br></span><span style="color: #008080;"> 72</span> <span style="color: #000000;">    }</span><span style="color: #008000;">//</span><span style="color: #008000;">     for(index=0; index<CONFIG_FB_NUM; index++)<br></span><span style="color: #008080;"> 73</span> <span style="color: #008000;"><br></span><span style="color: #008080;"> 74</span> <span style="color: #008000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;">    initialize the struct for Waitforvsync<br></span><span style="color: #008080;"> 75</span> <span style="color: #008000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;"> 关于中断的初始化工作Q貌?412是注册以后又取消?/span><span style="color: #008000;"><br></span><span style="color: #008080;"> 76</span> <span style="color: #008000;"></span><span style="color: #000000;">    s3cfb_vSyncInfo.count </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;"> 77</span> <span style="color: #000000;">    init_waitqueue_head(</span><span style="color: #000000;">&</span><span style="color: #000000;">s3cfb_vSyncInfo.waitQueue);<br></span><span style="color: #008080;"> 78</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 79</span> <span style="color: #000000;"></span><span style="color: #0000ff;">#if</span><span style="color: #000000;"> defined(CONFIG_ARCH_S3C2443)</span><span style="color: #000000;"><br></span><span style="color: #008080;"> 80</span> <span style="color: #000000;">    ret </span><span style="color: #000000;">=</span><span style="color: #000000;"> request_irq(IRQ_LCD3, s3c_fb_irq, </span><span style="color: #000000;">0</span><span style="color: #000000;">, </span><span style="color: #000000;">"</span><span style="color: #000000;">s3c-lcd</span><span style="color: #000000;">"</span><span style="color: #000000;">, pdev);<br></span><span style="color: #008080;"> 81</span> <span style="color: #000000;"></span><span style="color: #0000ff;">#elif</span><span style="color: #000000;"> defined(CONFIG_ARCH_S3C6400)</span><span style="color: #000000;"><br></span><span style="color: #008080;"> 82</span> <span style="color: #000000;">    ret </span><span style="color: #000000;">=</span><span style="color: #000000;"> request_irq(IRQ_LCD_VSYNC, s3c_fb_irq, </span><span style="color: #000000;">0</span><span style="color: #000000;">, </span><span style="color: #000000;">"</span><span style="color: #000000;">s3c-lcd</span><span style="color: #000000;">"</span><span style="color: #000000;">, pdev);<br></span><span style="color: #008080;"> 83</span> <span style="color: #000000;"></span><span style="color: #0000ff;">#elif</span><span style="color: #000000;"> defined (CONFIG_S3C_DVS) && defined (CONFIG_ARCH_S3C2412)</span><span style="color: #000000;"><br></span><span style="color: #008080;"> 84</span> <span style="color: #000000;">    ret </span><span style="color: #000000;">=</span><span style="color: #000000;"> request_irq(IRQ_LCD, s3c_dvs_irq, </span><span style="color: #000000;">0</span><span style="color: #000000;">, </span><span style="color: #000000;">"</span><span style="color: #000000;">s3c-lcd</span><span style="color: #000000;">"</span><span style="color: #000000;">, pdev);<br></span><span style="color: #008080;"> 85</span> <span style="color: #000000;"></span><span style="color: #0000ff;">#endif</span><span style="color: #000000;"><br></span><span style="color: #008080;"> 86</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (ret </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">) {<br></span><span style="color: #008080;"> 87</span> <span style="color: #000000;">        printk(</span><span style="color: #000000;">"</span><span style="color: #000000;">Failed to install irq (%d)\n</span><span style="color: #000000;">"</span><span style="color: #000000;">, ret);<br></span><span style="color: #008080;"> 88</span> <span style="color: #000000;">        </span><span style="color: #0000ff;">goto</span><span style="color: #000000;"> release_irq;<br></span><span style="color: #008080;"> 89</span> <span style="color: #000000;">    }<br></span><span style="color: #008080;"> 90</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 91</span> <span style="color: #000000;"></span><span style="color: #0000ff;">#if</span><span style="color: #000000;"> defined (CONFIG_S3C_DVS) & defined (CONFIG_ARCH_S3C2412)</span><span style="color: #000000;"><br></span><span style="color: #008080;"> 92</span> <span style="color: #000000;">    disable_irq(IRQ_LCD);<br></span><span style="color: #008080;"> 93</span> <span style="color: #000000;"></span><span style="color: #0000ff;">#endif</span><span style="color: #000000;"><br></span><span style="color: #008080;"> 94</span> <span style="color: #000000;"><br></span><span style="color: #008080;"> 95</span> <span style="color: #000000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;">在sys底下建立节点Q用于和用户I间交互</span><span style="color: #008000;"><br></span><span style="color: #008080;"> 96</span> <span style="color: #008000;"></span><span style="color: #000000;">    </span><span style="color: #008000;">/*</span><span style="color: #008000;"> create device files </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;"> 97</span> <span style="color: #000000;">    device_create_file(</span><span style="color: #000000;">&</span><span style="color: #000000;">(pdev</span><span style="color: #000000;">-></span><span style="color: #000000;">dev), </span><span style="color: #000000;">&</span><span style="color: #000000;">dev_attr_backlight_power);<br></span><span style="color: #008080;"> 98</span> <span style="color: #000000;">    device_create_file(</span><span style="color: #000000;">&</span><span style="color: #000000;">(pdev</span><span style="color: #000000;">-></span><span style="color: #000000;">dev), </span><span style="color: #000000;">&</span><span style="color: #000000;">dev_attr_backlight_level);<br></span><span style="color: #008080;"> 99</span> <span style="color: #000000;">    device_create_file(</span><span style="color: #000000;">&</span><span style="color: #000000;">(pdev</span><span style="color: #000000;">-></span><span style="color: #000000;">dev), </span><span style="color: #000000;">&</span><span style="color: #000000;">dev_attr_lcd_power);<br></span><span style="color: #008080;">100</span> <span style="color: #000000;"><br></span><span style="color: #008080;">101</span> <span style="color: #000000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;">胜利退?/span><span style="color: #008000;"><br></span><span style="color: #008080;">102</span> <span style="color: #008000;"></span><span style="color: #000000;">    printk(KERN_INFO </span><span style="color: #000000;">"</span><span style="color: #000000;">fb%d: %s frame buffer device\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,<br></span><span style="color: #008080;">103</span> <span style="color: #000000;">        info[index].fb.node, info[index].fb.fix.id);<br></span><span style="color: #008080;">104</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">105</span> <span style="color: #000000;"><br></span><span style="color: #008080;">106</span> <span style="color: #000000;">free_video_memory:<br></span><span style="color: #008080;">107</span> <span style="color: #000000;">    s3c_fb_unmap_video_memory(</span><span style="color: #000000;">&</span><span style="color: #000000;">info[index]);<br></span><span style="color: #008080;">108</span> <span style="color: #000000;"><br></span><span style="color: #008080;">109</span> <span style="color: #000000;">release_clock:<br></span><span style="color: #008080;">110</span> <span style="color: #000000;">    clk_disable(lcd_clock);<br></span><span style="color: #008080;">111</span> <span style="color: #000000;">    clk_put(lcd_clock);<br></span><span style="color: #008080;">112</span> <span style="color: #000000;"><br></span><span style="color: #008080;">113</span> <span style="color: #000000;">release_irq:<br></span><span style="color: #008080;">114</span> <span style="color: #000000;"></span><span style="color: #0000ff;">#if</span><span style="color: #000000;"> defined(CONFIG_ARCH_S3C2443)</span><span style="color: #000000;"><br></span><span style="color: #008080;">115</span> <span style="color: #000000;">    free_irq(IRQ_LCD3, </span><span style="color: #000000;">&</span><span style="color: #000000;">info);<br></span><span style="color: #008080;">116</span> <span style="color: #000000;"></span><span style="color: #0000ff;">#elif</span><span style="color: #000000;"> defined(CONFIG_ARCH_S3C6400)</span><span style="color: #000000;"><br></span><span style="color: #008080;">117</span> <span style="color: #000000;">    free_irq(IRQ_LCD_VSYNC, </span><span style="color: #000000;">&</span><span style="color: #000000;">info);<br></span><span style="color: #008080;">118</span> <span style="color: #000000;"></span><span style="color: #0000ff;">#endif</span><span style="color: #000000;"><br></span><span style="color: #008080;">119</span> <span style="color: #000000;">    </span><span style="color: #008000;">//</span><span style="color: #008000;">release_mem:</span><span style="color: #008000;"><br></span><span style="color: #008080;">120</span> <span style="color: #008000;"></span><span style="color: #000000;">    release_mem_region((unsigned </span><span style="color: #0000ff;">long</span><span style="color: #000000;">)S3C_VA_LCD, S3C_SZ_LCD);<br></span><span style="color: #008080;">121</span> <span style="color: #000000;"><br></span><span style="color: #008080;">122</span> <span style="color: #000000;">dealloc_fb:<br></span><span style="color: #008080;">123</span> <span style="color: #000000;">    framebuffer_release(</span><span style="color: #000000;">&</span><span style="color: #000000;">info[index].fb);<br></span><span style="color: #008080;">124</span> <span style="color: #000000;">    </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> ret;<br></span><span style="color: #008080;">125</span> <span style="color: #000000;">}<br></span><span style="color: #008080;">126</span> <span style="color: #000000;"><br></span><span style="color: #008080;">127</span> <span style="color: #000000;"><br></span><span style="color: #008080;">128</span> <span style="color: #000000;"></span></div> <br> <img src ="http://www.shnenglu.com/agaric/aggbug/47331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/agaric/" target="_blank">菌子</a> 2008-04-17 12:52 <a href="http://www.shnenglu.com/agaric/archive/2008/04/17/47331.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OpenSuse 10.3 上配|svn 服务?/title><link>http://www.shnenglu.com/agaric/archive/2008/03/01/43522.html</link><dc:creator>菌子</dc:creator><author>菌子</author><pubDate>Sat, 01 Mar 2008 09:08:00 GMT</pubDate><guid>http://www.shnenglu.com/agaric/archive/2008/03/01/43522.html</guid><wfw:comment>http://www.shnenglu.com/agaric/comments/43522.html</wfw:comment><comments>http://www.shnenglu.com/agaric/archive/2008/03/01/43522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/agaric/comments/commentRss/43522.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/agaric/services/trackbacks/43522.html</trackback:ping><description><![CDATA[<br> <h2 style="color: #000000;">配置svnserver</h2> <ol> </ol> 可以直接在YaST2里面Q在xinetd讄里面Q添加svnserve的选项?br>但是要注意运行用的用户Q默认的svn:svn是没有被建立的, 我改成nobody以后ok了,但不知道有什么什么问题?br><br><br> <h2 style="color: #000000;">配置APACHE</h2> 采用svnserver的方法有许多不便Q所以我q是军_最l采用http的方法?br>OpenSuse的apache2的配|文件布局g和其他系l有点不一栗?它在httpd.conf里面q没有直接进行的配置Q而是包含了其他很多的conf文gQ其中的每一个confQ包含了某一个具体部分的配置?br><br>ls /etc/apache2/<br><br>charset.conv         httpd.conf   mod_autoindex-defaults.conf  mod_status.conf     ssl.crl          ssl.key      vhosts.d<br>conf.d               listen.conf  mod_info.conf                mod_userdir.conf    ssl.crt          ssl.prm<br>default-server.conf  magic        mod_log_config.conf          mod_usertrack.conf  ssl.csr          sysconfig.d<br>errors.conf          mime.types   mod_mime-defaults.conf       server-tuning.conf  ssl-global.conf  uid.conf<br><br>配置svn 使用 apache 的文章很多,我就不重复具体的配置Ҏ了,只是说明一下在suse10.3上具体需要修改的文g?br>/etc/apache2/conf.d/subversion.conf    q个文g被httpd.conf所包含Q用来修改svn目录及一些设|,一般教E里面都是修改httpd.conf.<br>/etc/apache2/sysconfig.d/loadmodule.conf 用来在apache启动时加载模块用?<br><br>我最l解决mod_dav_svn加蝲的方法是Q在/usr/lib/apache2-prefork/ 下徏立一?mod_dav_svn.so的链接(位于 /usr/lib/apache2Q这样在YaST的httpserver讑֮里面可以选择和加载这个模块了?是q个问题Q花了我好几个消失来解决?br><br>其他的配|方法,可以参考svn中文手册Q和|上其他的配|教E?br> <br><br><br><br><br><br><br><br>      <ol> </ol> <br><br><img src ="http://www.shnenglu.com/agaric/aggbug/43522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/agaric/" target="_blank">菌子</a> 2008-03-01 17:08 <a href="http://www.shnenglu.com/agaric/archive/2008/03/01/43522.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些参考文章地址http://www.shnenglu.com/agaric/archive/2008/02/02/42415.html菌子菌子Sat, 02 Feb 2008 15:41:00 GMThttp://www.shnenglu.com/agaric/archive/2008/02/02/42415.htmlhttp://www.shnenglu.com/agaric/comments/42415.htmlhttp://www.shnenglu.com/agaric/archive/2008/02/02/42415.html#Feedback0http://www.shnenglu.com/agaric/comments/commentRss/42415.htmlhttp://www.shnenglu.com/agaric/services/trackbacks/42415.html
http://blog.chinaunix.net/u1/41638/showart_438078.html

http://blog.csdn.net/fudan_abc/



菌子 2008-02-02 23:41 发表评论
]]>
kernel 2.6.23.9 UL?S3C2412q_http://www.shnenglu.com/agaric/archive/2008/01/28/42076.html菌子菌子Mon, 28 Jan 2008 15:30:00 GMThttp://www.shnenglu.com/agaric/archive/2008/01/28/42076.htmlhttp://www.shnenglu.com/agaric/comments/42076.htmlhttp://www.shnenglu.com/agaric/archive/2008/01/28/42076.html#Feedback0http://www.shnenglu.com/agaric/comments/commentRss/42076.htmlhttp://www.shnenglu.com/agaric/services/trackbacks/42076.html 

我用的不是SMDK2412的开发板Q而是公司已经?412的机器,原来用的是自q一个OSQ现在打在他上面运行linux.

~译2.6的内核,需要比较新的gcc, 我暂时能扑ֈ的新版arm-linux-gcc也就?.4.1。,之前用arm-none-linux-eabi-gcc 4.1~出来的zImage好大Q基本不能用。对于开发工具和内核版本Q我觉得q是新好Q稳定版Q,否则可能会遇C些稀奇古怪的问题?/p>

1.修改Boot

使用公司原有的Boot, 在Boot启动Kernel的时候,加入的参数设定,然后用公怸用的usb更新工具烧录kernel到flash中,启动机器以后昄了一堆ؕ码,在启动参?console=ttySAC0后面加上?115200Q设定L特率以后一切OK.

2.MTD分区Q修Ҏ件common-smdk.c Q?修改其中的MTD讑֤的分区?/p>

新的kernel里面已经有了默认分区表,我们只要Ҏ我们需要来做部分修改就可以Q我的nand?12MBQ?我目前只是将前面?M分给boot,kernel, 紧接下来?M分给rootfsQ打暂时加载一?单的cramfs。其他的nand都还没有用?/p>

3.取消NAND驱动中的ECCL验,以及坏块监测部分, 因ؓNAND操作部分Qboot和kernel有一些不同?/p>

重启以后Qmount root分区p|Q还打出了I/O 错误?关闭了ECC校验Q修改了pc工具的烧录地址以后Qok. q都是因为我们的烧录工具使用的地址表示Ҏ和ecc的方式有一些不同?/p>

4.烧录 root 文gpȝ?/p>

拿了一个在kernel2.4 2440 上用q得cramfs直接来用Q提C找不到dev/consoleQ?上网查了一遍,应该是因为现在新版的kernelL了devfs的缘故,Z先快速的有一个可执行环境Q所以在|上找了一个现成的Q已l自己徏立好节点的cramfsQ里面的busybox版本也比较新?

 

开行,ȝ见到了亲qshell.



菌子 2008-01-28 23:30 发表评论
]]>
关于Fedora二三?/title><link>http://www.shnenglu.com/agaric/archive/2008/01/14/41163.html</link><dc:creator>菌子</dc:creator><author>菌子</author><pubDate>Mon, 14 Jan 2008 15:50:00 GMT</pubDate><guid>http://www.shnenglu.com/agaric/archive/2008/01/14/41163.html</guid><wfw:comment>http://www.shnenglu.com/agaric/comments/41163.html</wfw:comment><comments>http://www.shnenglu.com/agaric/archive/2008/01/14/41163.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/agaric/comments/commentRss/41163.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/agaric/services/trackbacks/41163.html</trackback:ping><description><![CDATA[工作需要,加之好奇心,l于l自己家的PC里面也安装上了Linux?Z和公司的OpenSuse有所不同于是选择另一Ƒ֤名顶的发行版Fedora.<br><br>我一直认为,人生L要遇C些挫折的?可不是装个pȝ嘛,为啥pq样难ؓ我捏Q?br><br>懒得插上光驱Q于是就用硬盘安装的办法?可grub for dos 是不认我从ISO里解出来的vmlinuz, <img src="http://www.shnenglu.com/CuteSoft_Client/CuteEditor/images/emdgust.gif" align="absmiddle" border="0"> 汗,攄LQ貌似没有h遇到q这个情c不能就q样攑ּ吧?再看看解压出来的一个jpgQ居然也打不开Qnnd是不是文件解错了?之前我解文g用的是winrar, 换成 Deamon Tools 试试Q?NND q次那附图OK了?再用grub来load Q?OK! 额。?原来winrar在解iso的时候会掉链子, 伙计们以后要千万心?br><br>以后的事顺利多了?nbsp; 装显卡驱动,直接用yum的包可以啦Q不q装完以后需要修改grub的listQ因为内怹更新了,需要从新的内核启动Q显卡驱动才可以奏效。Fedora默认已经安装了桌面特效,昑֍驱动安装完以后,直接在菜单里面选择打开ҎOK. 嘿嘿Q效果还可以吧?br><br> <img style="border-color: #0a0000;" alt="" src="http://www.shnenglu.com/images/cppblog_com/agaric/WindowsLiveWriter/Screenshot.png" border="2" height="500" width="800"><br><br><br>接下来就是解决QQ滴问题了?开始用PiginQ只能聊天,而且只能看见在线的好友,勉强能用Q后来又装了wine上面的qq2007,应该是配|的问题QLcrash?不过最后发ClumaQQ和evaq两个好东东?我本是比较喜Ƣeva的,功能很全了,界面也很友好Q只可惜q个家伙不能像其他的一些KDEE序在gnome下也能正常运行,只能在KDE下玩ѝLumaQQ作者现在主要在l护iphone版本的, 普通的java版有一D|间没更新了, 现在q能常用Q?界面也还好?br><br>q几天综合下来,感觉Fedoraq算不错Q但是易用性上面,不如Opensuse?至于 ubuntu Q?我用的不多, 感觉优点是国内源多,所以更新和下蝲E序速度比较快?br><br><img src="http://www.shnenglu.com/CuteSoft_Client/CuteEditor/images/emcrook.gif" align="absmiddle" border="0"> 工作的Q务是一直Linux内核Q现在看来,q有很多东西要学Q很多\要走?br><br>我觉得对于这h较长期/艰巨的Q务,相我q样工作l验不丰富的人,很难针对它来指定一个计划, 其实是很难其分割成一步步来完成的计划。导致每天都晕晕呼呼的不知道q什么好?希望有经验的朋友能给点徏议?br><br><br><span style="color: red;">Winrar解ISO可能会掉铑֭<br><br>对Linux有兴的初学者,不妨亲n在机器上安装一个易用的发行版(非虚拟机Q?推荐Ubuntu, Opensuse10.3QKDEQ)<br></span> <img src ="http://www.shnenglu.com/agaric/aggbug/41163.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/agaric/" target="_blank">菌子</a> 2008-01-14 23:50 <a href="http://www.shnenglu.com/agaric/archive/2008/01/14/41163.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习步骤[zt]http://www.shnenglu.com/agaric/archive/2007/12/05/37887.html菌子菌子Wed, 05 Dec 2007 14:03:00 GMThttp://www.shnenglu.com/agaric/archive/2007/12/05/37887.htmlhttp://www.shnenglu.com/agaric/comments/37887.htmlhttp://www.shnenglu.com/agaric/archive/2007/12/05/37887.html#Feedback0http://www.shnenglu.com/agaric/comments/commentRss/37887.htmlhttp://www.shnenglu.com/agaric/services/trackbacks/37887.html

q是我在ITjob培训|上扑ֈ的课E大UԌ觉得作ؓ嵌入式系l开发的学习步骤Q按部就班地L行和学习Q到不失ZU好的学习方法:Q?/p>

q是作为参考也是有很好的h值的Q?/p>

随着CC会信息化进E的加快Q嵌入式pȝ被广泛的地应用于军事、家用、工业、商业、办公、医疗等C会各个? 面,表现出很强的投资价倹{从国际范围来看Q作为数字化电子信息产品核心的嵌入式pȝ目前其硬件和软g开发工具市场已l突?font face="文鼎Qͼ中楷, serif">2000亿美元,嵌入式系l带 来的全球工业q值更是达C一万亿元Q随着全球l济的持l增长以及信息化的加速发展,嵌入式系l市场必进一步增ѝ?font face="文鼎Qͼ中楷, serif">
本课E是Z适应目前发展q速的嵌入?font face="文鼎Qͼ中楷, serif">Linux需求而设计,评目标是让学员辑ֈ适应嵌入式应用Y件开发、嵌入式pȝ开发或嵌入式驱动开发的基本素质? 评循序渐进的带领您嵌入式开发的世界Q采用了目前应用最q泛的Yg开发^収ͼLinux?font face="文鼎Qͼ中楷, serif">ArmQ,可以保证您尽量脓q目前企业需求?/p>

学习步骤如下Q(一步步来哦Q)


1、Linux
基础

安装Linux操作pȝ
Linux
文gpȝ
Linux
常用命o
Linux
启动q程详解
熟悉Linux服务 能够独立安装Linux操作pȝ
能够熟练使用Linuxpȝ的基本命?
认识Linuxpȝ的常用服? 安装Linux操作pȝ
Linux
基本命o实践
Linux环境变量
定制Linux的服? Shell ~程基础 使用vi~辑文g
使用Emacs~辑文g
使用其他~辑?


2、Shell ~程基础

Shell?
认识后台E序
Bash
~程 熟悉Linuxpȝ下的~辑环境
熟悉Linux下的各种Shell
熟练q行shell~程 熟悉vi基本操作
熟悉Emacs的基本操?
比较不同shell的区?
~写一个测试服务器是否q通的shell脚本E序
~写一个查看进E是否存在的shell脚本E序
~写一个带有@环语句的shell脚本E序


3、Linux 下的 C ~程基础

linux C语言环境概述
Gcc
使用Ҏ
Gdb
调试技?
Autoconf
Automake
Makefile
代码优化 熟悉Linuxpȝ下的开发环?
熟悉Gcc~译?
熟悉Makefile规则 ~写Hello,WorldE序
使用 make命o~译E序
~写带有一个@环的E序
调试一个有问题的程?


4、嵌入式pȝ开发基

嵌入式系l概q?
交叉~译
配置TFTP服务
配置NFS服务
下蝲Bootloader和内?
嵌入?font face="文鼎Qͼ中楷, serif">Linux应用软g开发流E?br>熟悉嵌入式系l概念以及开发流E?
建立嵌入式系l开发环? 制作cross_gcc工具?
~译q下?font face="文鼎Qͼ中楷, serif">U-boot
~译q下?font face="文鼎Qͼ中楷, serif">Linux内核
~译q下?font face="文鼎Qͼ中楷, serif">Linux应用E序


4、嵌入式pȝUL

Linux内核代码
q_相关代码分析
ARM
q_介绍
q_UL的关键技?
ULLinux内核? ARMq_ 了解UL的概?
能够ULLinux内核 ULLinux2.6内核? ARM9开发板


5、嵌入式 Linux 下串口通信

串行I/O的基本概?
嵌入?font face="文鼎Qͼ中楷, serif">Linux应用软g开发流E?
Linux
pȝ的文件和讑֤
与文件相关的pȝ调用
配置l端?font face="文鼎Qͼ中楷, serif">MiniCOM 能够熟悉q行串口通信
熟悉文gI/O ~写串口通信E序
~写多串口通信E序


6、嵌入式pȝ中多q程E序设计

Linuxpȝq程概述
嵌入式系l的q程特点
q程操作
守护q程
相关的系l调? 了解Linuxpȝ中进E的概念
能够~写多进E程? ~写多进E程?
~写一个守护进E程?
sleep
pȝ调用 d理、同步与通信 Linuxd概述
d调度

信号
׃n内存
d理 API 了解Linuxpȝd理机制
熟悉q程间通信的几U方?
熟悉嵌入?font face="文鼎Qͼ中楷, serif">Linux中的d间同步与通信
~写一个简单的道E序实现文g传输
~写一个用共享内存的E序


7、嵌入式pȝ中多U程E序设计

U程的基知识
多线E编E方?
U程应用中的同步问题 了解U程的概?
能够~写单的多线E程? ~写一个多U程E序


8、嵌入式 Linux |络~程

|络基础知识
嵌入?font face="文鼎Qͼ中楷, serif">Linux?font face="文鼎Qͼ中楷, serif">TCP/IP|络l构
socket
~程
常用 API函数
分析Ping命o的实?
基本UDP套接口编E?
许可证管?
PPP
协议
GPRS
了解嵌入?font face="文鼎Qͼ中楷, serif">Linux|络体系l构
能够q行嵌入?font face="文鼎Qͼ中楷, serif">Linux环境下的socket ~程
熟悉UDP协议?font face="文鼎Qͼ中楷, serif">PPP协议
熟悉GPRS 使用socket ~写代理服务?
使用socket ~写路由?
~写许可证服务器
指出TCP?font face="文鼎Qͼ中楷, serif">UDP的优~点
~写一?font face="文鼎Qͼ中楷, serif">web服务?
~写一个运行在 ARMq_的网l播攑֙


9、GUI E序开?/span>

GUI基础
嵌入式系l?font face="文鼎Qͼ中楷, serif">GUIcd
~译QT
q行QT开? 熟悉嵌入式系l常用的GUI
能够q行QT~程 使用QT~写“HelloQ?font face="文鼎Qͼ中楷, serif">World”E序
调试一个加入信?font face="文鼎Qͼ中楷, serif">/槽的实例
通过重蝲QWidget cL法处理事?


10、Linux 字符讑֤驱动E序

讑֤驱动E序基础知识
Linux
pȝ的模?
字符讑֤驱动分析
fs_operation
l构
加蝲驱动E序 了解讑֤驱动E序的概?
了解Linux字符讑֤驱动E序l构
能够~写字符讑֤驱动E序 ~写Skull驱动
~写键盘驱动
~写I/O驱动
分析一个看门狗驱动E序
ҎLinux2.6内核?font face="文鼎Qͼ中楷, serif">2.4内核中字W设备驱动的不同
Linux
块设备驱动程? 块设备驱动程序工作原?
典型的块讑֤驱动E序分析
块设备的dh队列 了解Linux块设备驱动程序结?
能够~写单的块设备驱动程? 比较字符讑֤与块讑֤的异?
~写MMC卡驱动程?
分析一个文件系l?
ҎLinux2.6内核?font face="文鼎Qͼ中楷, serif">2.4内核中块讑֤驱动的不?


11、文件系l?/span>

虚拟文gpȝ
文gpȝ的徏?
ramfs
内存文gpȝ
proc
文gpȝ
devfs
文gpȝ
MTD
技术简?
MTD
块设备初始化
MTD
块设备的d操作 了解Linuxpȝ的文件系l?
了解嵌入?font face="文鼎Qͼ中楷, serif">Linux的文件系l?
了解MTD技?
能够~写单的文gpȝ ?ARM9开发板d MTD支持
ULJFFS2文gpȝ
通过proc文gpȝ修改操作pȝ参数
分析romfs 文gpȝ源代?
创徏一?font face="文鼎Qͼ中楷, serif">cramfs 文gpȝ



菌子 2007-12-05 22:03 发表评论
]]>
޾ƷŮþþþ99| þþƷþһ| 91Ʒþþþþù۲ | 99þѹƷ| þþƷþý| һ㽶þֻ| þٸ۲AVר| һһþAþۺϾƷ| þ޾Ʒϵַ| ŷһþþþþþôƬ| ޾ҹþþþþ| þ޸ۿ| ݺݾƷþþĻ | ղƷþþһ| ƷŮٸAVѾþ| Ʒ99þþþƷ| ޾Ʒþò| ޹˾Ʒþþþþۺ | ӰɫۺϾþ| ۿƷþ| þרƷ| þþƷ99Ʒ| aѹۿþav| þ99ۺϾƷ| þþþҹҹҹƷ| þɫһ| þWWW˳һƬ| þù߳׽ѹۿ| aëƬþ| þҹӰ| ղƷþþþþþ| þþƷ91þۺ鶹| պþþþƷӰԺҳ| þþþþþþþѾƷ | þþþav | 2021ƷۺϾþ| þav߳avav紵| þþžѾƷ6| 99þþƷѿ| Ʒþˬ| ˬˬƬaþ|