﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-星光灿烂-随笔分类-Linux</title><link>http://www.cppblog.com/agaric/category/5702.html</link><description>C元素</description><language>zh-cn</language><lastBuildDate>Fri, 30 May 2008 17:22:39 GMT</lastBuildDate><pubDate>Fri, 30 May 2008 17:22:39 GMT</pubDate><ttl>60</ttl><item><title>一段s3c lcd framebuffer 的代码</title><link>http://www.cppblog.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.cppblog.com/agaric/archive/2008/04/17/47331.html</guid><wfw:comment>http://www.cppblog.com/agaric/comments/47331.html</wfw:comment><comments>http://www.cppblog.com/agaric/archive/2008/04/17/47331.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/agaric/comments/commentRss/47331.html</wfw:commentRss><trackback:ping>http://www.cppblog.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;">&nbsp;&nbsp;1</span>&nbsp;<span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;__init&nbsp;s3c_fb_probe(</span><span style="color: #0000ff;">struct</span><span style="color: #000000;">&nbsp;platform_device&nbsp;</span><span style="color: #000000;">*</span><span style="color: #000000;">pdev)<br></span><span style="color: #008080;">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">char</span><span style="color: #000000;">&nbsp;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;">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;ret;<br></span><span style="color: #008080;">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;index</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</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;">;&nbsp;index</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">S3C_FB_NUM;&nbsp;index</span><span style="color: #000000;">++</span><span style="color: #000000;">){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">遍历每一个fb,我们里只有一个lcd.</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s3c_fb_init_fbinfo(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info[index],&nbsp;driver_name,&nbsp;index);<br></span><span style="color: #008080;">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</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;">){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">操作主lcd</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;11</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s3c_fb_backlight_power(</span><span style="color: #000000;">1</span><span style="color: #000000;">);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">开启背光，lcd电源源，开启背光等。 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;12</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s3c_fb_lcd_power(</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s3c_fb_backlight_level(DEFAULT_BACKLIGHT_LEVEL);<br></span><span style="color: #008080;">&nbsp;14</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dprintk(</span><span style="color: #000000;">"</span><span style="color: #000000;">dev&nbsp;FB&nbsp;init\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;16</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">映射内存区域</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;18</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">request_mem_region((unsigned&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">)S3C_VA_LCD,&nbsp;SZ_1M,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">s3c-lcd</span><span style="color: #000000;">"</span><span style="color: #000000;">))&nbsp;{<br></span><span style="color: #008080;">&nbsp;19</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">EBUSY;<br></span><span style="color: #008080;">&nbsp;20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">goto</span><span style="color: #000000;">&nbsp;dealloc_fb;<br></span><span style="color: #008080;">&nbsp;21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;22</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;23</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dprintk(</span><span style="color: #000000;">"</span><span style="color: #000000;">got&nbsp;LCD&nbsp;region\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;24</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;25</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">打开lcd_clock</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;26</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lcd_clock&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;clk_get(NULL,&nbsp;</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;">&nbsp;27</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">lcd_clock)&nbsp;{<br></span><span style="color: #008080;">&nbsp;28</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printk(KERN_INFO&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">failed&nbsp;to&nbsp;get&nbsp;lcd&nbsp;clock&nbsp;source\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;29</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">ENOENT;<br></span><span style="color: #008080;">&nbsp;30</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">goto</span><span style="color: #000000;">&nbsp;release_irq;<br></span><span style="color: #008080;">&nbsp;31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;32</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clk_enable(lcd_clock);<br></span><span style="color: #008080;">&nbsp;34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printk(</span><span style="color: #000000;">"</span><span style="color: #000000;">S3C_LCD&nbsp;clock&nbsp;got&nbsp;enabled&nbsp;::&nbsp;%ld.%03ld&nbsp;Mhz\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;print_mhz(clk_get_rate(lcd_clock)));<br></span><span style="color: #008080;">&nbsp;35</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;msleep(</span><span style="color: #000000;">5</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;38</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">申请显存</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;40</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;Initialize&nbsp;video&nbsp;memory&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;s3c_fb_map_video_memory(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info[index]);<br></span><span style="color: #008080;">&nbsp;42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(ret)&nbsp;{<br></span><span style="color: #008080;">&nbsp;43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printk(</span><span style="color: #000000;">"</span><span style="color: #000000;">Failed&nbsp;to&nbsp;allocate&nbsp;video&nbsp;RAM:&nbsp;%d\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;ret);<br></span><span style="color: #008080;">&nbsp;44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">ENOMEM;<br></span><span style="color: #008080;">&nbsp;45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">goto</span><span style="color: #000000;">&nbsp;release_clock;<br></span><span style="color: #008080;">&nbsp;46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dprintk(</span><span style="color: #000000;">"</span><span style="color: #000000;">got&nbsp;video&nbsp;memory\n</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span><span style="color: #008080;">&nbsp;48</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">初始化寄存器，这里与具体的设备有关。</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;50</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;s3c_fb_init_registers(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info[index]);<br></span><span style="color: #008080;">&nbsp;51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;s3c_fb_check_var(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info[index].fb.var,&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info[index].fb);<br></span><span style="color: #008080;">&nbsp;52</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">所谓的色表（调色盘？），不清除是干啥的。</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;54</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(index</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">2</span><span style="color: #000000;">){<br></span><span style="color: #008080;">&nbsp;55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;2007-01-09-Tue.&nbsp;for&nbsp;RGB&nbsp;8-8-8&nbsp;palette</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;56</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(fb_alloc_cmap(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info[index].fb.cmap,&nbsp;</span><span style="color: #000000;">256</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">0</span><span style="color: #000000;">){<br></span><span style="color: #008080;">&nbsp;57</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">goto</span><span style="color: #000000;">&nbsp;dealloc_fb;<br></span><span style="color: #008080;">&nbsp;58</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;59</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;60</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">{<br></span><span style="color: #008080;">&nbsp;61</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;2007-01-09-Tue.&nbsp;for&nbsp;RGB&nbsp;8-8-8&nbsp;palette</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;62</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">(fb_alloc_cmap(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info[index].fb.cmap,&nbsp;</span><span style="color: #000000;">16</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">0</span><span style="color: #000000;">){<br></span><span style="color: #008080;">&nbsp;63</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">goto</span><span style="color: #000000;">&nbsp;dealloc_fb;<br></span><span style="color: #008080;">&nbsp;64</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;65</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;66</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">注册framebuffer??</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;67</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;register_framebuffer(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info[index].fb);<br></span><span style="color: #008080;">&nbsp;68</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(ret&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;{<br></span><span style="color: #008080;">&nbsp;69</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printk(KERN_ERR&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Failed&nbsp;to&nbsp;register&nbsp;framebuffer&nbsp;device:&nbsp;%d\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;ret);<br></span><span style="color: #008080;">&nbsp;70</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">goto</span><span style="color: #000000;">&nbsp;free_video_memory;<br></span><span style="color: #008080;">&nbsp;71</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;72</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(index=0;&nbsp;index&lt;CONFIG_FB_NUM;&nbsp;index++)<br></span><span style="color: #008080;">&nbsp;73</span>&nbsp;<span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;74</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;initialize&nbsp;the&nbsp;struct&nbsp;for&nbsp;Waitforvsync<br></span><span style="color: #008080;">&nbsp;75</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;"> 关于中断的初始化工作，貌似2412是注册以后又取消了</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;76</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;s3cfb_vSyncInfo.count&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">&nbsp;77</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;init_waitqueue_head(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">s3cfb_vSyncInfo.waitQueue);<br></span><span style="color: #008080;">&nbsp;78</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;79</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#if</span><span style="color: #000000;">&nbsp;defined(CONFIG_ARCH_S3C2443)</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;80</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;request_irq(IRQ_LCD3,&nbsp;s3c_fb_irq,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">s3c-lcd</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;pdev);<br></span><span style="color: #008080;">&nbsp;81</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#elif</span><span style="color: #000000;">&nbsp;defined(CONFIG_ARCH_S3C6400)</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;82</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;request_irq(IRQ_LCD_VSYNC,&nbsp;s3c_fb_irq,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">s3c-lcd</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;pdev);<br></span><span style="color: #008080;">&nbsp;83</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#elif</span><span style="color: #000000;">&nbsp;defined&nbsp;(CONFIG_S3C_DVS)&nbsp;&amp;&amp;&nbsp;defined&nbsp;(CONFIG_ARCH_S3C2412)</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;84</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;request_irq(IRQ_LCD,&nbsp;s3c_dvs_irq,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">s3c-lcd</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;pdev);<br></span><span style="color: #008080;">&nbsp;85</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#endif</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;86</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(ret&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">)&nbsp;{<br></span><span style="color: #008080;">&nbsp;87</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printk(</span><span style="color: #000000;">"</span><span style="color: #000000;">Failed&nbsp;to&nbsp;install&nbsp;irq&nbsp;(%d)\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;ret);<br></span><span style="color: #008080;">&nbsp;88</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">goto</span><span style="color: #000000;">&nbsp;release_irq;<br></span><span style="color: #008080;">&nbsp;89</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br></span><span style="color: #008080;">&nbsp;90</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;91</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#if</span><span style="color: #000000;">&nbsp;defined&nbsp;(CONFIG_S3C_DVS)&nbsp;&amp;&nbsp;defined&nbsp;(CONFIG_ARCH_S3C2412)</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;92</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;disable_irq(IRQ_LCD);<br></span><span style="color: #008080;">&nbsp;93</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#endif</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;94</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;95</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">在sys底下建立节点，用于和用户空间交互</span><span style="color: #008000;"><br></span><span style="color: #008080;">&nbsp;96</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/*</span><span style="color: #008000;">&nbsp;create&nbsp;device&nbsp;files&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br></span><span style="color: #008080;">&nbsp;97</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;device_create_file(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">(pdev</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">dev),&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">dev_attr_backlight_power);<br></span><span style="color: #008080;">&nbsp;98</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;device_create_file(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">(pdev</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">dev),&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">dev_attr_backlight_level);<br></span><span style="color: #008080;">&nbsp;99</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;device_create_file(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">(pdev</span><span style="color: #000000;">-&gt;</span><span style="color: #000000;">dev),&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">dev_attr_lcd_power);<br></span><span style="color: #008080;">100</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">101</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">胜利退出</span><span style="color: #008000;"><br></span><span style="color: #008080;">102</span>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;printk(KERN_INFO&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">fb%d:&nbsp;%s&nbsp;frame&nbsp;buffer&nbsp;device\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,<br></span><span style="color: #008080;">103</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;info[index].fb.node,&nbsp;info[index].fb.fix.id);<br></span><span style="color: #008080;">104</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br></span><span style="color: #008080;">105</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">106</span>&nbsp;<span style="color: #000000;">free_video_memory:<br></span><span style="color: #008080;">107</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;s3c_fb_unmap_video_memory(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info[index]);<br></span><span style="color: #008080;">108</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">109</span>&nbsp;<span style="color: #000000;">release_clock:<br></span><span style="color: #008080;">110</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;clk_disable(lcd_clock);<br></span><span style="color: #008080;">111</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;clk_put(lcd_clock);<br></span><span style="color: #008080;">112</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">113</span>&nbsp;<span style="color: #000000;">release_irq:<br></span><span style="color: #008080;">114</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#if</span><span style="color: #000000;">&nbsp;defined(CONFIG_ARCH_S3C2443)</span><span style="color: #000000;"><br></span><span style="color: #008080;">115</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;free_irq(IRQ_LCD3,&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info);<br></span><span style="color: #008080;">116</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#elif</span><span style="color: #000000;">&nbsp;defined(CONFIG_ARCH_S3C6400)</span><span style="color: #000000;"><br></span><span style="color: #008080;">117</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;free_irq(IRQ_LCD_VSYNC,&nbsp;</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info);<br></span><span style="color: #008080;">118</span>&nbsp;<span style="color: #000000;"></span><span style="color: #0000ff;">#endif</span><span style="color: #000000;"><br></span><span style="color: #008080;">119</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</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>&nbsp;<span style="color: #008000;"></span><span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;release_mem_region((unsigned&nbsp;</span><span style="color: #0000ff;">long</span><span style="color: #000000;">)S3C_VA_LCD,&nbsp;S3C_SZ_LCD);<br></span><span style="color: #008080;">121</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">122</span>&nbsp;<span style="color: #000000;">dealloc_fb:<br></span><span style="color: #008080;">123</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;framebuffer_release(</span><span style="color: #000000;">&amp;</span><span style="color: #000000;">info[index].fb);<br></span><span style="color: #008080;">124</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;ret;<br></span><span style="color: #008080;">125</span>&nbsp;<span style="color: #000000;">}<br></span><span style="color: #008080;">126</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">127</span>&nbsp;<span style="color: #000000;"><br></span><span style="color: #008080;">128</span>&nbsp;<span style="color: #000000;"></span></div>
<br> <img src ="http://www.cppblog.com/agaric/aggbug/47331.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/agaric/" target="_blank">菌子</a> 2008-04-17 12:52 <a href="http://www.cppblog.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.cppblog.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.cppblog.com/agaric/archive/2008/03/01/43522.html</guid><wfw:comment>http://www.cppblog.com/agaric/comments/43522.html</wfw:comment><comments>http://www.cppblog.com/agaric/archive/2008/03/01/43522.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/agaric/comments/commentRss/43522.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/agaric/services/trackbacks/43522.html</trackback:ping><description><![CDATA[<br>
<h2 style="color: #000000;">配置svnserver</h2>
<ol>
</ol>
可以直接在YaST2里面，在xinetd设置里面，添加svnserve的选项。<br>但是要注意运行使用的用户，默认的svn:svn是没有被建立的， 我改成nobody以后就ok了，但不知道有什么什么问题。<br><br><br>
<h2 style="color: #000000;">配置APACHE</h2>
采用svnserver的方法有许多不便，所以我还是决定最终采用http的方法。<br>OpenSuse的apache2的配置文件布局似乎和其他系统有点不一样。 它在httpd.conf里面并没有直接进行的配置，而是包含了其他很多的conf文件，其中的每一个conf，包含了某一个具体部分的配置。<br><br>ls /etc/apache2/<br><br>charset.conv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; httpd.conf&nbsp;&nbsp; mod_autoindex-defaults.conf&nbsp; mod_status.conf&nbsp;&nbsp;&nbsp;&nbsp; ssl.crl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ssl.key&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; vhosts.d<br>conf.d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; listen.conf&nbsp; mod_info.conf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mod_userdir.conf&nbsp;&nbsp;&nbsp; ssl.crt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ssl.prm<br>default-server.conf&nbsp; magic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mod_log_config.conf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mod_usertrack.conf&nbsp; ssl.csr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sysconfig.d<br>errors.conf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mime.types&nbsp;&nbsp; mod_mime-defaults.conf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; server-tuning.conf&nbsp; ssl-global.conf&nbsp; uid.conf<br><br>配置svn 使用 apache 的文章很多，我就不重复具体的配置方法了，只是说明一下在suse10.3上具体需要修改的文件。<br>/etc/apache2/conf.d/subversion.conf&nbsp;&nbsp;&nbsp; 这个文件被httpd.conf所包含，用来修改svn目录及一些设置，一般教程里面都是修改httpd.conf.<br>/etc/apache2/sysconfig.d/loadmodule.conf 用来在apache启动时加载模块用。 <br><br>我最终解决mod_dav_svn加载的方法是，在/usr/lib/apache2-prefork/ 下建立一个 mod_dav_svn.so的链接（位于 /usr/lib/apache2）这样在YaST的httpserver设定里面就可以选择和加载这个模块了。 就是这个问题，花了我好几个消失来解决。<br><br>其他的配置方法，可以参考svn中文手册，和网上其他的配置教程。<br>&nbsp;<br><br><br><br><br><br><br><br>
&nbsp; &nbsp;&nbsp;
<ol>
</ol>
<br><br><img src ="http://www.cppblog.com/agaric/aggbug/43522.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/agaric/" target="_blank">菌子</a> 2008-03-01 17:08 <a href="http://www.cppblog.com/agaric/archive/2008/03/01/43522.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一些参考文章地址</title><link>http://www.cppblog.com/agaric/archive/2008/02/02/42415.html</link><dc:creator>菌子</dc:creator><author>菌子</author><pubDate>Sat, 02 Feb 2008 15:41:00 GMT</pubDate><guid>http://www.cppblog.com/agaric/archive/2008/02/02/42415.html</guid><wfw:comment>http://www.cppblog.com/agaric/comments/42415.html</wfw:comment><comments>http://www.cppblog.com/agaric/archive/2008/02/02/42415.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/agaric/comments/commentRss/42415.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/agaric/services/trackbacks/42415.html</trackback:ping><description><![CDATA[http://blog.chinaunix.net/u1/34474/showart_404278.html<br><br>http://blog.chinaunix.net/u1/41638/showart_438078.html<br><br>http://blog.csdn.net/fudan_abc/<br><br><img src ="http://www.cppblog.com/agaric/aggbug/42415.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/agaric/" target="_blank">菌子</a> 2008-02-02 23:41 <a href="http://www.cppblog.com/agaric/archive/2008/02/02/42415.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>kernel 2.6.23.9  移植到 S3C2412平台</title><link>http://www.cppblog.com/agaric/archive/2008/01/28/42076.html</link><dc:creator>菌子</dc:creator><author>菌子</author><pubDate>Mon, 28 Jan 2008 15:30:00 GMT</pubDate><guid>http://www.cppblog.com/agaric/archive/2008/01/28/42076.html</guid><wfw:comment>http://www.cppblog.com/agaric/comments/42076.html</wfw:comment><comments>http://www.cppblog.com/agaric/archive/2008/01/28/42076.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/agaric/comments/commentRss/42076.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/agaric/services/trackbacks/42076.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<p>我使用的不是SMDK2412的开发板，而是公司已经出货的2412的机器，原来用的是自己的一个OS，现在打算在他上面运行linux.</p>
<p>编译2.6的内核，需要比较新的gcc, 我暂时能找到的新版arm-linux-gcc也就是3.4.1。，之前用arm-none-linux-eabi-gcc 4.1编出来的zImage好大，基本不能用。对于开发工具和内核版本，我觉得还是越新越好（稳定版），否则可能会遇到一些稀奇古怪的问题。</p>
<p>1.修改Boot </p>
<p>使用公司原有的Boot, 在Boot启动Kernel的时候，加入的参数设定，然后用公司专用的usb更新工具烧录kernel到flash中，启动机器以后显示了一堆乱码，在启动参数 console=ttySAC0后面加上了,115200，设定波特率以后一切OK.</p>
<p>2.MTD分区：修改文件common-smdk.c ， 修改其中的MTD设备的分区。</p>
<p>新的kernel里面已经有了默认分区表，我们只要根据我们需要来做部分修改就可以，我的nand有512MB， 我目前只是将前面的2M分给boot,kernel, 紧接下来的4M分给rootfs，打算暂时加载一个 简单的cramfs。其他的nand都还没有用。</p>
<p>3.取消NAND驱动中的ECC读校验，以及坏块监测部分, 因为NAND操作部分，boot和kernel有一些不同。</p>
<p>重启以后，mount root分区失败，还打出了I/O 错误。 关闭了ECC校验，修改了pc工具的烧录地址以后，ok. 这都是因为我们的烧录工具使用的地址表示方法和ecc的方式有一些不同。</p>
<p>4.烧录 root 文件系统。</p>
<p>拿了一个在kernel2.4 2440 上用过得cramfs直接来用，提示找不到dev/console， 上网查了一遍，应该是因为现在新版的kernel去掉了devfs的缘故，为了先快速的有一个可执行环境，所以在网上找了一个现成的，已经自己建立好节点的cramfs，里面的busybox版本也比较新。 </p>
<p>&nbsp;</p>
<p>开机运行，总算见到了亲爱的shell.</p>
<img src ="http://www.cppblog.com/agaric/aggbug/42076.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/agaric/" target="_blank">菌子</a> 2008-01-28 23:30 <a href="http://www.cppblog.com/agaric/archive/2008/01/28/42076.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Fedora二三事</title><link>http://www.cppblog.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.cppblog.com/agaric/archive/2008/01/14/41163.html</guid><wfw:comment>http://www.cppblog.com/agaric/comments/41163.html</wfw:comment><comments>http://www.cppblog.com/agaric/archive/2008/01/14/41163.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/agaric/comments/commentRss/41163.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/agaric/services/trackbacks/41163.html</trackback:ping><description><![CDATA[工作需要，加之好奇心，终于给自己家的PC里面也安装上了Linux。 为了和公司的OpenSuse有所不同于是就选择另一款大名顶顶的发行版Fedora.<br><br>我一直认为，人生总是要遇到一些挫折的。 可不就是装个系统嘛，为啥就要这样难为我捏？<br><br>懒得插上光驱，于是就用硬盘安装的办法。 可grub for dos 就是不认我从ISO里解出来的vmlinuz, <img src="http://www.cppblog.com/CuteSoft_Client/CuteEditor/images/emdgust.gif" align="absmiddle" border="0"> 汗，放狗去搜，貌似没有人遇到过这个情况。不能就这样放弃吧？再看看解压出来的一个jpg，居然也打不开，nnd是不是文件解错了。 之前我解文件用的是winrar, 换成 Deamon Tools 试试， NND 这次那附图OK了。 再用grub来load ， OK! 额。。 原来winrar在解iso的时候会掉链子， 伙计们以后要千万小心。<br><br>以后的事就顺利多了。&nbsp; 装显卡驱动，直接用yum的包就可以啦，不过装完以后需要修改grub的list，因为内核也更新了，需要从新的内核启动，显卡驱动才可以奏效。Fedora默认已经安装了桌面特效，显卡驱动安装完以后，直接在菜单里面选择打开特效就OK. 嘿嘿，效果还可以吧。<br><br>&nbsp;<img style="border-color: #0a0000;" alt="" src="http://www.cppblog.com/images/cppblog_com/agaric/WindowsLiveWriter/Screenshot.png" border="2" height="500" width="800"><br><br><br>接下来就是解决QQ滴问题了。 开始用Pigin，只能聊天，而且只能看见在线的好友，勉强能用，后来又装了wine上面的qq2007,应该是配置的问题，总是crash。 不过最后发现了lumaQQ和eva这两个好东东。 我本人还是比较喜欢eva的，功能很全了，界面也很友好，只可惜这个家伙不能像其他的一些KDE程序在gnome下也能正常运行，只能在KDE下玩儿。LumaQQ作者现在主要在维护iphone版本的， 普通的java版有一段时间没更新了， 现在还能常用， 界面也还好。<br><br>这几天综合下来，感觉Fedora还算不错，但是易用性上面，不如Opensuse。 至于 ubuntu ， 我用的不多， 感觉优点是国内源多，所以更新和下载程序速度比较快。<br><br><img src="http://www.cppblog.com/CuteSoft_Client/CuteEditor/images/emcrook.gif" align="absmiddle" border="0"> 工作的任务是一直Linux内核，现在看来，还有很多东西要学，很多路要走。<br><br>我觉得对于这样比较长期／艰巨的任务，相我这样工作经验不丰富的人，很难针对它来指定一个计划， 其实就是很难将其分割成一步步来完成的小计划。导致每天都晕晕呼呼的不知道干什么好。 希望有经验的朋友能给点建议。<br><br><br><span style="color: red;">Winrar解ISO可能会掉链子<br><br>对Linux有兴趣的初学者，不妨亲身在机器上安装一个易用的发行版（非虚拟机， 推荐Ubuntu, Opensuse10.3（KDE））<br></span> <img src ="http://www.cppblog.com/agaric/aggbug/41163.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/agaric/" target="_blank">菌子</a> 2008-01-14 23:50 <a href="http://www.cppblog.com/agaric/archive/2008/01/14/41163.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习步骤[zt]</title><link>http://www.cppblog.com/agaric/archive/2007/12/05/37887.html</link><dc:creator>菌子</dc:creator><author>菌子</author><pubDate>Wed, 05 Dec 2007 14:03:00 GMT</pubDate><guid>http://www.cppblog.com/agaric/archive/2007/12/05/37887.html</guid><wfw:comment>http://www.cppblog.com/agaric/comments/37887.html</wfw:comment><comments>http://www.cppblog.com/agaric/archive/2007/12/05/37887.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/agaric/comments/commentRss/37887.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/agaric/services/trackbacks/37887.html</trackback:ping><description><![CDATA[多新手学习嵌入式系统，不清楚那么多方向舵知识和参考书，该从哪里开始学习。入手了，却又在该先学习什么后学习什么上失去方向。这里有你想要的答案，帮你指点迷经。<br>
<div>
<p>这是我在<font face="文鼎ＰＬ简中楷, serif">ITjob</font>培训网上找到的课程大纲，觉得作为嵌入式系统开发的学习步骤，按部就班地去施行和学习，到不失为一种好的学习方法：）</p>
</div>
<div>
<p>就算是作为参考也是有很好的价值的！</p>
</div>
<p>
随着现代社会信息化进程的加快，嵌入式系统被广泛的地应用于军事、家用、工业、商业、办公、医疗等社会各个方
面，表现出很强的投资价值。从国际范围来看，作为数字化电子信息产品核心的嵌入式系统目前其硬件和软件开发工具市场已经突破<font face="文鼎ＰＬ简中楷, serif">2000</font>亿美元，嵌入式系统带
来的全球工业年产值更是达到了一万亿美元，随着全球经济的持续增长以及信息化的加速发展，嵌入式系统市场必将进一步增长。<font face="文鼎ＰＬ简中楷, serif"><br></font>本课程是为了适应目前发展迅速的嵌入式<font face="文鼎ＰＬ简中楷, serif">Linux</font>需求而设计，课程目标是让学员达到适应嵌入式应用软件开发、嵌入式系统开发或嵌入式驱动开发的基本素质。
课程循序渐进的带领您嵌入式开发的世界，采用了目前应用最广泛的软硬件开发平台（<font face="文鼎ＰＬ简中楷, serif">Linux</font>和<font face="文鼎ＰＬ简中楷, serif">Arm</font>），可以保证您尽量贴近目前企业需求。</p>
<div>
<p>学习步骤如下：（一步步来哦：）</p>
</div>
<p><font face="文鼎ＰＬ简中楷, serif"><br><span style="color: #0080ff;">1、Linux
</span></font><span style="color: #0080ff;">基础</span><font face="文鼎ＰＬ简中楷, serif"><br></font></p>
<p>安装<font face="文鼎ＰＬ简中楷, serif">Linux</font>操作系统
<font face="文鼎ＰＬ简中楷, serif"><br>Linux</font>文件系统
<font face="文鼎ＰＬ简中楷, serif"><br>Linux</font>常用命令
<font face="文鼎ＰＬ简中楷, serif"><br>Linux</font>启动过程详解
<font face="文鼎ＰＬ简中楷, serif"><br></font>熟悉<font face="文鼎ＰＬ简中楷, serif">Linux</font>服务
能够独立安装<font face="文鼎ＰＬ简中楷, serif">Linux</font>操作系统
<font face="文鼎ＰＬ简中楷, serif"><br></font>能够熟练使用<font face="文鼎ＰＬ简中楷, serif">Linux</font>系统的基本命令
<font face="文鼎ＰＬ简中楷, serif"><br></font>认识<font face="文鼎ＰＬ简中楷, serif">Linux</font>系统的常用服务
安装<font face="文鼎ＰＬ简中楷, serif">Linux</font>操作系统
<font face="文鼎ＰＬ简中楷, serif"><br>Linux</font>基本命令实践
<font face="文鼎ＰＬ简中楷, serif"><br></font>设置<font face="文鼎ＰＬ简中楷, serif">Linux</font>环境变量
<font face="文鼎ＰＬ简中楷, serif"><br></font>定制<font face="文鼎ＰＬ简中楷, serif">Linux</font>的服务
<font face="文鼎ＰＬ简中楷, serif">Shell </font>编程基础
使用<font face="文鼎ＰＬ简中楷, serif">vi</font>编辑文件
<font face="文鼎ＰＬ简中楷, serif"><br></font>使用<font face="文鼎ＰＬ简中楷, serif">Emacs</font>编辑文件
<font face="文鼎ＰＬ简中楷, serif"><br></font>使用其他编辑器
</p>
<p><br>
</p>
<p style="color: #0080ff;"><font face="文鼎ＰＬ简中楷, serif">2、Shell
</font>编程基础</p>
<p><font face="文鼎ＰＬ简中楷, serif">Shell</font>简介
<font face="文鼎ＰＬ简中楷, serif"><br></font>认识后台程序<font face="文鼎ＰＬ简中楷, serif"><br>Bash</font>编程
熟悉<font face="文鼎ＰＬ简中楷, serif">Linux</font>系统下的编辑环境
<font face="文鼎ＰＬ简中楷, serif"><br></font>熟悉<font face="文鼎ＰＬ简中楷, serif">Linux</font>下的各种<font face="文鼎ＰＬ简中楷, serif">Shell
<br></font>熟练进行<font face="文鼎ＰＬ简中楷, serif">shell</font>编程
熟悉<font face="文鼎ＰＬ简中楷, serif">vi</font>基本操作
<font face="文鼎ＰＬ简中楷, serif"><br></font>熟悉<font face="文鼎ＰＬ简中楷, serif">Emacs</font>的基本操作
<font face="文鼎ＰＬ简中楷, serif"><br></font>比较不同<font face="文鼎ＰＬ简中楷, serif">shell</font>的区别
<font face="文鼎ＰＬ简中楷, serif"><br></font>编写一个测试服务器是否连通的<font face="文鼎ＰＬ简中楷, serif">shell</font>脚本程序
<font face="文鼎ＰＬ简中楷, serif"><br></font>编写一个查看进程是否存在的<font face="文鼎ＰＬ简中楷, serif">shell</font>脚本程序
<font face="文鼎ＰＬ简中楷, serif"><br></font>编写一个带有循环语句的<font face="文鼎ＰＬ简中楷, serif">shell</font>脚本程序
</p>
<p><br>
</p>
<p style="color: #0080ff;"><font face="文鼎ＰＬ简中楷, serif">3、Linux
</font>下的 <font face="文鼎ＰＬ简中楷, serif">C </font>编程基础</p>
<p><font face="文鼎ＰＬ简中楷, serif">linux
C</font>语言环境概述 <font face="文鼎ＰＬ简中楷, serif"><br>Gcc</font>使用方法
<font face="文鼎ＰＬ简中楷, serif"><br>Gdb</font>调试技术
<font face="文鼎ＰＬ简中楷, serif"><br>Autoconf <br>Automake
<br>Makefile <br></font>代码优化 熟悉<font face="文鼎ＰＬ简中楷, serif">Linux</font>系统下的开发环境
<font face="文鼎ＰＬ简中楷, serif"><br></font>熟悉<font face="文鼎ＰＬ简中楷, serif">Gcc</font>编译器
<font face="文鼎ＰＬ简中楷, serif"><br></font>熟悉<font face="文鼎ＰＬ简中楷, serif">Makefile</font>规则
编写<font face="文鼎ＰＬ简中楷, serif">Hello,World</font>程序
<font face="文鼎ＰＬ简中楷, serif"><br></font>使用
<font face="文鼎ＰＬ简中楷, serif">make</font>命令编译程序
<font face="文鼎ＰＬ简中楷, serif"><br></font>编写带有一个循环的程序
<font face="文鼎ＰＬ简中楷, serif"><br></font>调试一个有问题的程序
</p>
<p><br>
</p>
<p><span style="color: #0080ff;">4、嵌入式系统开发基础</span>
</p>
<p>嵌入式系统概述 <font face="文鼎ＰＬ简中楷, serif"><br></font>交叉编译
<font face="文鼎ＰＬ简中楷, serif"><br></font>配置<font face="文鼎ＰＬ简中楷, serif">TFTP</font>服务
<font face="文鼎ＰＬ简中楷, serif"><br></font>配置<font face="文鼎ＰＬ简中楷, serif">NFS</font>服务
<font face="文鼎ＰＬ简中楷, serif"><br></font>下载<font face="文鼎ＰＬ简中楷, serif">Bootloader</font>和内核
<font face="文鼎ＰＬ简中楷, serif"><br></font>嵌入式<font face="文鼎ＰＬ简中楷, serif">Linux</font>应用软件开发流程<br>熟悉嵌入式系统概念以及开发流程 <font face="文鼎ＰＬ简中楷, serif"><br></font>建立嵌入式系统开发环境
制作<font face="文鼎ＰＬ简中楷, serif">cross_gcc</font>工具链
<font face="文鼎ＰＬ简中楷, serif"><br></font>编译并下载<font face="文鼎ＰＬ简中楷, serif">U-boot
<br></font>编译并下载<font face="文鼎ＰＬ简中楷, serif">Linux</font>内核
<font face="文鼎ＰＬ简中楷, serif"><br></font>编译并下载<font face="文鼎ＰＬ简中楷, serif">Linux</font>应用程序
</p>
<p><br>
</p>
<p><span style="color: #0080ff;">4、嵌入式系统移植</span>
</p>
<p><font face="文鼎ＰＬ简中楷, serif">Linux</font>内核代码
<font face="文鼎ＰＬ简中楷, serif"><br></font>平台相关代码分析
<font face="文鼎ＰＬ简中楷, serif"><br>ARM</font>平台介绍
<font face="文鼎ＰＬ简中楷, serif"><br></font>平台移植的关键技术
<font face="文鼎ＰＬ简中楷, serif"><br></font>移植<font face="文鼎ＰＬ简中楷, serif">Linux</font>内核到
<font face="文鼎ＰＬ简中楷, serif">ARM</font>平台 了解移植的概念
<font face="文鼎ＰＬ简中楷, serif"><br></font>能够移植<font face="文鼎ＰＬ简中楷, serif">Linux</font>内核
移植<font face="文鼎ＰＬ简中楷, serif">Linux2.6</font>内核到
<font face="文鼎ＰＬ简中楷, serif">ARM9</font>开发板
</p>
<p><br>
</p>
<p><span style="color: #0080ff;">5、嵌入式 </span><font style="color: #0080ff;" face="文鼎ＰＬ简中楷, serif">Linux
</font><span style="color: #0080ff;">下串口通信</span>
</p>
<p>串行<font face="文鼎ＰＬ简中楷, serif">I/O</font>的基本概念
<font face="文鼎ＰＬ简中楷, serif"><br></font>嵌入式<font face="文鼎ＰＬ简中楷, serif">Linux</font>应用软件开发流程
<font face="文鼎ＰＬ简中楷, serif"><br>Linux</font>系统的文件和设备
<font face="文鼎ＰＬ简中楷, serif"><br></font>与文件相关的系统调用
<font face="文鼎ＰＬ简中楷, serif"><br></font>配置超级终端和<font face="文鼎ＰＬ简中楷, serif">MiniCOM
</font>能够熟悉进行串口通信 <font face="文鼎ＰＬ简中楷, serif"><br></font>熟悉文件<font face="文鼎ＰＬ简中楷, serif">I/O
</font>编写串口通信程序 <font face="文鼎ＰＬ简中楷, serif"><br></font>编写多串口通信程序
</p>
<p><br>
</p>
<p><span style="color: #0080ff;">6、嵌入式系统中多进程程序设计</span>
</p>
<p><font face="文鼎ＰＬ简中楷, serif">Linux</font>系统进程概述
<font face="文鼎ＰＬ简中楷, serif"><br></font>嵌入式系统的进程特点
<font face="文鼎ＰＬ简中楷, serif"><br></font>进程操作
<font face="文鼎ＰＬ简中楷, serif"><br></font>守护进程
<font face="文鼎ＰＬ简中楷, serif"><br></font>相关的系统调用
了解<font face="文鼎ＰＬ简中楷, serif">Linux</font>系统中进程的概念
<font face="文鼎ＰＬ简中楷, serif"><br></font>能够编写多进程程序
编写多进程程序 <font face="文鼎ＰＬ简中楷, serif"><br></font>编写一个守护进程程序
<font face="文鼎ＰＬ简中楷, serif"><br>sleep</font>系统调用
任务管理、同步与通信 <font face="文鼎ＰＬ简中楷, serif">Linux</font>任务概述<font face="文鼎ＰＬ简中楷, serif"><br></font>任务调度
<font face="文鼎ＰＬ简中楷, serif"><br></font>管道 <font face="文鼎ＰＬ简中楷, serif"><br></font>信号
<font face="文鼎ＰＬ简中楷, serif"><br></font>共享内存
<font face="文鼎ＰＬ简中楷, serif"><br></font>任务管理 <font face="文鼎ＰＬ简中楷, serif">API
</font>了解<font face="文鼎ＰＬ简中楷, serif">Linux</font>系统任务管理机制
<font face="文鼎ＰＬ简中楷, serif"><br></font>熟悉进程间通信的几种方式
<font face="文鼎ＰＬ简中楷, serif"><br></font>熟悉嵌入式<font face="文鼎ＰＬ简中楷, serif">Linux</font>中的任务间同步与通信<br>编写一个简单的管道程序实现文件传输 <font face="文鼎ＰＬ简中楷, serif"><br></font>编写一个使用共享内存的程序
</p>
<p><br>
</p>
<p><span style="color: #0080ff;">7、嵌入式系统中多线程程序设计</span>
</p>
<p>线程的基础知识 <font face="文鼎ＰＬ简中楷, serif"><br></font>多线程编程方法
<font face="文鼎ＰＬ简中楷, serif"><br></font>线程应用中的同步问题
了解线程的概念 <font face="文鼎ＰＬ简中楷, serif"><br></font>能够编写简单的多线程程序
编写一个多线程程序
</p>
<p><br>
</p>
<p><span style="color: #0080ff;">8、嵌入式 </span><font style="color: #0080ff;" face="文鼎ＰＬ简中楷, serif">Linux
</font><span style="color: #0080ff;">网络编程</span>
</p>
<p>网络基础知识 <font face="文鼎ＰＬ简中楷, serif"><br></font>嵌入式<font face="文鼎ＰＬ简中楷, serif">Linux</font>中<font face="文鼎ＰＬ简中楷, serif">TCP/IP</font>网络结构
<font face="文鼎ＰＬ简中楷, serif"><br>socket </font>编程
<font face="文鼎ＰＬ简中楷, serif"><br></font>常用 <font face="文鼎ＰＬ简中楷, serif">API</font>函数
<font face="文鼎ＰＬ简中楷, serif"><br></font>分析<font face="文鼎ＰＬ简中楷, serif">Ping</font>命令的实现
<font face="文鼎ＰＬ简中楷, serif"><br></font>基本<font face="文鼎ＰＬ简中楷, serif">UDP</font>套接口编程
<font face="文鼎ＰＬ简中楷, serif"><br></font>许可证管理
<font face="文鼎ＰＬ简中楷, serif"><br>PPP</font>协议 <font face="文鼎ＰＬ简中楷, serif"><br>GPRS
</font>了解嵌入式<font face="文鼎ＰＬ简中楷, serif">Linux</font>网络体系结构
<font face="文鼎ＰＬ简中楷, serif"><br></font>能够进行嵌入式<font face="文鼎ＰＬ简中楷, serif">Linux</font>环境下的<font face="文鼎ＰＬ简中楷, serif">socket
</font>编程 <font face="文鼎ＰＬ简中楷, serif"><br></font>熟悉<font face="文鼎ＰＬ简中楷, serif">UDP</font>协议、<font face="文鼎ＰＬ简中楷, serif">PPP</font>协议
<font face="文鼎ＰＬ简中楷, serif"><br></font>熟悉<font face="文鼎ＰＬ简中楷, serif">GPRS
</font>使用<font face="文鼎ＰＬ简中楷, serif">socket </font>编写代理服务器
<font face="文鼎ＰＬ简中楷, serif"><br></font>使用<font face="文鼎ＰＬ简中楷, serif">socket
</font>编写路由器 <font face="文鼎ＰＬ简中楷, serif"><br></font>编写许可证服务器
<font face="文鼎ＰＬ简中楷, serif"><br></font>指出<font face="文鼎ＰＬ简中楷, serif">TCP</font>和<font face="文鼎ＰＬ简中楷, serif">UDP</font>的优缺点
<font face="文鼎ＰＬ简中楷, serif"><br></font>编写一个<font face="文鼎ＰＬ简中楷, serif">web</font>服务器
<font face="文鼎ＰＬ简中楷, serif"><br></font>编写一个运行在
<font face="文鼎ＰＬ简中楷, serif">ARM</font>平台的网络播放器
</p>
<p><br>
</p>
<p><font style="color: #0080ff;" face="文鼎ＰＬ简中楷, serif">9、GUI
</font><span style="color: #0080ff;">程序开发</span>
</p>
<p><font face="文鼎ＰＬ简中楷, serif">GUI</font>基础
<font face="文鼎ＰＬ简中楷, serif"><br></font>嵌入式系统<font face="文鼎ＰＬ简中楷, serif">GUI</font>类型
<font face="文鼎ＰＬ简中楷, serif"><br></font>编译<font face="文鼎ＰＬ简中楷, serif">QT
<br></font>进行<font face="文鼎ＰＬ简中楷, serif">QT</font>开发
熟悉嵌入式系统常用的<font face="文鼎ＰＬ简中楷, serif">GUI
<br></font>能够进行<font face="文鼎ＰＬ简中楷, serif">QT</font>编程
使用<font face="文鼎ＰＬ简中楷, serif">QT</font>编写&#8220;<font face="文鼎ＰＬ简中楷, serif">Hello</font>，<font face="文鼎ＰＬ简中楷, serif">World&#8221;</font>程序
<font face="文鼎ＰＬ简中楷, serif"><br></font>调试一个加入信号<font face="文鼎ＰＬ简中楷, serif">/</font>槽的实例
<font face="文鼎ＰＬ简中楷, serif"><br></font>通过重载<font face="文鼎ＰＬ简中楷, serif">QWidget
</font>类方法处理事件
</p>
<p><br>
</p>
<p><font style="color: #0080ff;" face="文鼎ＰＬ简中楷, serif">10、Linux
</font><span style="color: #0080ff;">字符设备驱动程序</span>
</p>
<p>设备驱动程序基础知识
<font face="文鼎ＰＬ简中楷, serif"><br>Linux</font>系统的模块
<font face="文鼎ＰＬ简中楷, serif"><br></font>字符设备驱动分析
<font face="文鼎ＰＬ简中楷, serif"><br>fs_operation</font>结构
<font face="文鼎ＰＬ简中楷, serif"><br></font>加载驱动程序
了解设备驱动程序的概念 <font face="文鼎ＰＬ简中楷, serif"><br></font>了解<font face="文鼎ＰＬ简中楷, serif">Linux</font>字符设备驱动程序结构
<font face="文鼎ＰＬ简中楷, serif"><br></font>能够编写字符设备驱动程序
编写<font face="文鼎ＰＬ简中楷, serif">Skull</font>驱动
<font face="文鼎ＰＬ简中楷, serif"><br></font>编写键盘驱动
<font face="文鼎ＰＬ简中楷, serif"><br></font>编写<font face="文鼎ＰＬ简中楷, serif">I/O</font>驱动
<font face="文鼎ＰＬ简中楷, serif"><br></font>分析一个看门狗驱动程序
<font face="文鼎ＰＬ简中楷, serif"><br></font>对比<font face="文鼎ＰＬ简中楷, serif">Linux2.6</font>内核与<font face="文鼎ＰＬ简中楷, serif">2.4</font>内核中字符设备驱动的不同<font face="文鼎ＰＬ简中楷, serif"><br>Linux </font>块设备驱动程序
块设备驱动程序工作原理 <font face="文鼎ＰＬ简中楷, serif"><br></font>典型的块设备驱动程序分析
<font face="文鼎ＰＬ简中楷, serif"><br></font>块设备的读写请求队列
了解<font face="文鼎ＰＬ简中楷, serif">Linux</font>块设备驱动程序结构
<font face="文鼎ＰＬ简中楷, serif"><br></font>能够编写简单的块设备驱动程序
比较字符设备与块设备的异同 <font face="文鼎ＰＬ简中楷, serif"><br></font>编写<font face="文鼎ＰＬ简中楷, serif">MMC</font>卡驱动程序
<font face="文鼎ＰＬ简中楷, serif"><br></font>分析一个文件系统
<font face="文鼎ＰＬ简中楷, serif"><br></font>对比<font face="文鼎ＰＬ简中楷, serif">Linux2.6</font>内核与<font face="文鼎ＰＬ简中楷, serif">2.4</font>内核中块设备驱动的不同
</p>
<p><br>
</p>
<p><span style="color: #0080ff;">11、文件系统</span>
</p>
<p>虚拟文件系统 <font face="文鼎ＰＬ简中楷, serif"><br></font>文件系统的建立
<font face="文鼎ＰＬ简中楷, serif"><br>ramfs</font>内存文件系统
<font face="文鼎ＰＬ简中楷, serif"><br>proc</font>文件系统
<font face="文鼎ＰＬ简中楷, serif"><br>devfs </font>文件系统
<font face="文鼎ＰＬ简中楷, serif"><br>MTD</font>技术简介
<font face="文鼎ＰＬ简中楷, serif"><br>MTD</font>块设备初始化
<font face="文鼎ＰＬ简中楷, serif"><br>MTD</font>块设备的读写操作
了解<font face="文鼎ＰＬ简中楷, serif">Linux</font>系统的文件系统
<font face="文鼎ＰＬ简中楷, serif"><br></font>了解嵌入式<font face="文鼎ＰＬ简中楷, serif">Linux</font>的文件系统
<font face="文鼎ＰＬ简中楷, serif"><br></font>了解<font face="文鼎ＰＬ简中楷, serif">MTD</font>技术
<font face="文鼎ＰＬ简中楷, serif"><br></font>能够编写简单的文件系统
为 <font face="文鼎ＰＬ简中楷, serif">ARM9</font>开发板添加
<font face="文鼎ＰＬ简中楷, serif">MTD</font>支持
<font face="文鼎ＰＬ简中楷, serif"><br></font>移植<font face="文鼎ＰＬ简中楷, serif">JFFS2</font>文件系统
<font face="文鼎ＰＬ简中楷, serif"><br></font>通过<font face="文鼎ＰＬ简中楷, serif">proc</font>文件系统修改操作系统参数
<font face="文鼎ＰＬ简中楷, serif"><br></font>分析<font face="文鼎ＰＬ简中楷, serif">romfs
</font>文件系统源代码 <font face="文鼎ＰＬ简中楷, serif"><br></font>创建一个<font face="文鼎ＰＬ简中楷, serif">cramfs
</font>文件系统
</p><img src ="http://www.cppblog.com/agaric/aggbug/37887.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/agaric/" target="_blank">菌子</a> 2007-12-05 22:03 <a href="http://www.cppblog.com/agaric/archive/2007/12/05/37887.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>