¼ÒÓõçÄÔÐ廨»ú½â¾ö·½°¸ |
×÷Õߣº ³ö´¦£º´´ºçÐ廨Íø ¸üÐÂʱ¼ä£º 2009Äê03ÔÂ31ÈÕ |
ÃÀ¹úʤ¼Ò¡¢ÈÕ±¾ÐÖµÜÒÔ¼°Öйú·ÉÔ¾¶¼Ïà¼ÌÉÏÊмÒÓõçÄÔÐ廨»ú»ò´ÌÐå»ú£¬ÒÔÆÚ´ý·ìÈÒ»úÔÙ´ÎÇÿªÀÏ°ÙÐյļÒÃÅ£¬¿ÉÊÜÏÞÓÚоƬ¼¼ÊõµÄ·¢Õ¹£¬Ê¹µÃ¼ÒÓõçÄÔÐ廨»úµÄÖÇÄÜ»¯³Ì¶È¡¢ÖÆÔì³É±¾¡¢Î¬ÐÞ·½Ê½¶¼ÄÑÓÚ´ïµ½ÃñÆ·µÄ±ê×¼¡£Îª´Ë£¬±±¾©ÖпÆÒÚоÐÅÏ¢¼¼ÊõÓÐÏÞ¹«Ë¾Ê¹Óñ¾¹«Ë¾×ÔÖ÷Éè¼ÆµÄEraSoC-1000C´¦ÀíÆ÷оƬËù¿ª·¢µÄ¼ÒÓõçÄÔÐ廨»ú·½°¸£¬²ÉÓÃÁËlinux2.6Äںˣ¬²¢Ìí¼Óʵʱ²¹¶¡(rtlinux)ÒÔʹÆä¾ß±¸¸üÍêÉƵÄʵʱϵͳ¹¦ÄÜ£»¾«ÖµÄQtapiaͼÐÎϵͳÈí¼þ(ÒÔϼò³ÆQT)£¬±ÜÃâÁ˲ÉÓÃWinCE¶ø´øÀ´µÄ°º¹óÊÚȨ·ÑÓ㬴ó´ó½µµÍÁ˵ç×Ó¿ØÖÆϵͳµÄÖÆÔì³É±¾£¬Ê¹µÃµçÄÔÐ廨»ú×ßÈë¼ÒÍ¥±äµÃÖ¸ÈÕ¿É´ý¡£
¡¡¡¡ÏµÍ³¼ò½é
¡¡¡¡EraSoC-1000ϵÁÐоƬ×÷Ϊ¹úÄÚΨһµÄ»ùÓÚÁúоÄں˵ĸßÐÔÄÜSoC£¬Æ¾½èÆäÇ¿´óµÄCPU´¦ÀíÄÜÁ¦¡¢64λ¸¡µãÔËËãÄÜÁ¦£¬¸ßЧµÄ×ÜÏ߼ܹ¹¡¢¿ÉʵÏֵ͹¦ºÄµÄ¶¯Ì¬±äƵ¼¼Êõ¡¢·á¸»µÄƬÉÏÉ豸£¬Òѹ㷺µØÓ¦ÓÃÔÚ¹úÄÚ¸÷ÖÖǶÈëʽÁìÓò¡£
¡¡¡¡»ùÓÚEraSoC-1000CµÄµçÄÔÐ廨»úϵͳÖ÷ÒªÓÉÈý¸öµç»úе÷¹¤×÷ʵÏÖÐ廨¹¦ÄÜ£ºÒ»¸öÖ÷Öáµç»ú£¬²ÉÓý»Á÷ËÅ·þ½»Á÷À´¿ØÖÆÕëÍ·µÄÉÏÏÂÔ˶¯£»X¡¢YÖá²½½øµç»ú¸÷Ò»¸ö£¬ÒÔʵÏÖ¹¤×÷ÃæµÄºáÏòÓë×ÝÏòÒƶ¯£¬ÏµÍ³¿ØÖÆ¿òͼʾÓÚͼ1¡£
¡¡¡¡Ó²¼þÉè¼Æ
¡¡¡¡¸ù¾Ýͼ1ËùʾµÄÕû¸öϵͳ·½°¸µÄ¿ØÖÆʵÏÖÔÀí£¬ÎÒÃÇ°Ñ´Ë·½°¸µÄÖ÷¿ØÖƵ¥Ôª·ÖΪÉÏ¡¢ÏÂλ»ú½á¹¹£¬²¢ÓÉÒ»¿ÅEraSoC-1000CоƬÀ´Íê³ÉÉÏ¡¢ÏÂλ»úµÄÐͬ¹¤×÷¡£
¡¡¡¡ÉÏλ»ú½á¹¹
¡¡¡¡ÉÏλ»úÖ÷Òª¸ºÔðÈË»ú½»»¥¡¢Îļþ¶ÁÈ¡Óë½âÎö¡¢²¿·Ö´«¸ÐÆ÷ÐźŵĴ¦Àí£»
¡¡¡¡¡¤STN/TFT LCDÏÔʾÓë´¥Ãþ¿ØÖƵÄʵÏÖ
¡¡¡¡´Ë²¿·Ö×÷ΪÈË»ú½»»¥µÄÖ÷Ҫƽ̨£¬Í¨¹ý¿ØÖÆ´¥ÃþÆÁÀ´¿ØÖƵç»ú×ö³öÏàÓ¦µÄ¶¯×÷¾ÍÊÇÔڴ˲¿·ÖʵÏֵġ£ÆäÖÐÒº¾§²¿·Ö¶Ô¶«Ö¥T6963CFG LCDÇý¶¯Ð¾Æ¬µÄ¿ØÖÆÊÇÓÉEraSoC-1000CÒý³öµÄ8λÊý¾ÝÏߺÍ5¸öGPIOʵÏֵģ¬±¾´ÎÓõĺڰ×ÆÁ£¬Èç¹ûÐèÒª¿ÉÒÔÓòÊÉ«ÆÁ£¬³ß´çÒ²¿ÉÒÔÈÎÒâÑ¡Ôñ¡£¶ø´¥ÃþÆÁµÄ¿ØÖÆÊÇÓÉEraSoC-1000CµÄspiÐźÅÏߺÍƬѡÏßʱÖÓÏß¾¹ý´¥ÃþÆÁ¿ØÖÆÆ÷ADV7843ʵÏֵġ£
¡¡¡¡¡¤´«¸ÐÆ÷ͨ¹ýGPIOÓëEraSoC-1000CµÄͨѶ
¡¡¡¡¸ÃÐ廨»úÒ»¹²Óõ½ÁË6¸ö´«¸ÐÆ÷·Ö±ðÓÉEraSoC-1000CÌṩµÄ6¸ö¿ÉÒÔ×÷ΪÖжÏÊäÈëµÄGPIO¿ØÖÆ¡£ÕâЩ´«¸ÐÆ÷·Ö±ðÊÇxÖá·½Ïòµç»úµÄ´«¸ÐÆ÷£¬yÖá·½ÏòµÄµç»ú´«¸ÐÆ÷£¬zÖá·½ÏòµÄµç»ú´«¸ÐÆ÷£¬²âÊÔÐ廨ÕëÊDz»ÊÇÔÚÉÏÕëλ(´ËʱÕëÔÚËùÓÐλÖõÄ×î¸ßµã)µÄ´«¸ÐÆ÷£¬²âÊÔÐ廨ÕëÊDz»ÊÇÀ뿪²¼µÄ´«¸ÐÆ÷£¬ºÍÒ»¸öÓÃÓÚÊÇ·ñÈÆÏߵĸ¨Öú¹¦ÄܵĴ«¸ÐÆ÷¡£
¡¡¡¡ÏÂλ»ú½á¹¹
¡¡¡¡ÏÂλ»úÖ÷Òª¸ºÔðÊä³öµç»ú¿ØÖÆÐźÅ(PWM)¡¢Ðͬ¹¤×÷ÒÔ¼°²¿·Ö´«¸ÐÆ÷ÐźŵĴ¦Àí¡£
¡¡¡¡¡¤PWM¶Ô½»Á÷ËÅ·þµç»úµÄ¿ØÖÆ
¡¡¡¡ÔÚEraSoC-1000CоƬÖÐÒ»¹²ÓÐÁù·Âö³å¿í¶Èµ÷½Ú/¶¨Ê±/¼ÆÊý¿ØÖÆÆ÷(ÒÔϼò³ÆPWM)¡£Ã¿Ò»Â·PWM¹¤×÷ºÍ¿ØÖÆ·½Ê½ÍêÈ«Ïàͬ£¬¶¼ÓÐÁ½Â·ÊäÈëÐźÅ(gate_clk_pad_i£¬ capt_pad_i)ºÍһ·Âö³å¿í¶ÈÊä³öÐźŠ(pwm_o)¡£ÓÉÓÚϵͳʱÖӸߴï60MHz£¬¼ÆÊý¼Ä´æÆ÷ºÍ²Î¿¼¼Ä´æÆ÷¾ù32λÊý¾Ý¿í¶È£¬ÕâÑù¿ª·¢ÈËÔ±¿Éͨ¹ý±à³ÉÈÃPWM²úÉú¸÷ÖÖ¸´ÔӵĽüËÆÏßÐÔµÄÊä³öÐźţ¬·Ç³£Êʺϸߵµµç»úµÄ¿ØÖÆ¡£
¡¡¡¡¡¤²½½øµç»úµÄÇý¶¯
¡¡¡¡Ö÷Òª²ÉÓÃרÃŵIJ½½øµç»úÇý¶¯Ð¾Æ¬£¬ÓÐEraSoC-1000C¸ø³ö¿ØÖÆÐźţ¬¿ØÖƵç»ú°´ÕÕÒªÇóÔ˶¯¡£±¾´ÎÉè¼Æ²½½øµç»úµÄÇý¶¯Ð¾Æ¬ÓõÄÊÇUTC¹«Ë¾µÄL6219£¬Ö»ÐèÓÃEraSoC-1000CµÄ4¸öGPIO¿ØÖÆÒ»¸öL6219À´¿ØÖƵç»úµÄת¶¯ËٶȺÍËùתµÄ½Ç¶È¡£
¡¡¡¡¡¤Ö÷Öáµç»úµÄ¿ØÖÆ
¡¡¡¡Í¬²½¼ì²â£ºÓÉ1¸öÍⲿÖжÏÍê³É£¬ÎªÁËÄܹ»¿ØÖÆÖ±Á÷µç»úת¶¯Ëٶȣ¬ÓÃÁËÒ»¸öʱÖÓ×÷Ϊ¼ÆÊýÆ÷À´¼ÆÊýÒ»¸öʱ¼ä¶ÎµÄÕëÊý£¬Èç¹û¿ìÁË»òÕßÂýÁ˾Í×ö³öµ÷Õû¡£
¡¡¡¡µç»ú¿ØÖÆ£ºÓÉ1¸öGPIOÍê³É£¬´ËGPIOÓÃÀ´¿ØÖƵç»úµçÔ´µÄ¿ªÍ¨Óë¹Ø±Õ¡£
¡¡¡¡Í¼2ºÍͼ3·Ö±ðΪϵͳ·½°¸µÄµç·¹¹ÔìͼºÍµç·°åʵͼ¡£
¡¡¡¡
¡¡¡¡Èí¼þÉè¼ÆºÍϵͳ³ÌÐòÒÆÖ²
¡¡¡¡Bootloader
¡¡¡¡EraSoC-1000CµÄbootloaderʹÓÃPMON2000¡£¾¹ý²Ã¼ôºÍÔö¼ÓÏà¹ØÇý¶¯µÄ´úÂëÔÚEraSoCµÄ¹Ù·½ÍøÕ¾¿ÉÖ±½ÓÏÂÔØ¡£Óû§Ö»Ðè°´ÕÕEraSoC-1000CµÄÓû§ÊÖ²á½øÐÐÅäÖúͱàÒë¼´¿É¡£
¡¡¡¡ÄÚºËÒÆÖ²
¡¡¡¡EraSoC-1000CʹÓÃLinux2.4.17ºÍLinux2.6.18.1Äںˡ£¾¹ýÒÆÖ²ºóµÄÔ´´úÂë¿ÉÒÔÔÚEraSoCµÄ¹Ù·½ÍøÕ¾ÏÂÔØ¡£
¡¡¡¡½»²æ±àÒ빤¾ßÁ´mipsel-linux-gccÒ²¿ÉÒÔÔÚ¸ÃÍøÕ¾ÏÂÔØ¡£
¡¡¡¡ÅäÖÃÄÚºËʹÓÃerasoc_defconfigÅäÖÃÎļþ£¬Óû§¿É¸ù¾Ý×Ô¼ºÐèÒª²Ã¼ô²»ÓõÄÇý¶¯ºÍÎļþϵͳµÈ¡£
¡¡¡¡Qtapia±àÒë
¡¡¡¡QTÊÇÄ¿Ç°ÔÚlinuxÉÏʹÓýϹãµÄÒ»¸öͼÐÎϵͳ¡£ÔÚÍøÉÏÏÂÔØÒÔÏÂÈí¼þµÄÔ´Âë°üÖ®ºó£¬°´ÕÕEraSoCµÄQTÍêÈ«°²×°Êֲᣬ±àÒëÉú³ÉQTµÄ¿ÉÖ´ÐдúÂë¡£
¡¡¡¡qt-embedded-2.3.7.tar.gz  ¡¡¡¡qt-x11-2.3.2.tar.gz  ¡¡¡¡qtopia-free-1.7.0.tar.gz ¡¡¡¡tmake-1.11.tar.gz  ¡¡¡¡e2fsprogs-1.35.tar.gz
¡¡¡¡Çý¶¯¼°fireware¿ª·¢
¡¡¡¡»ùÓÚEraSoC-1000CµÄµçÄÔÐ廨»ú·½°¸³É¹¦½«LinuxÒýÈë·ìÈÒÉ豸µÄ¿ØÖÆÊÇÒ»¸öÒµ½çÁìÏȵļ¼ÊõÍ»ÆÆ¡£ÒÔÇ°ÆÕ±éÈÏΪLinux²»ÊʺÏÓ¦ÓÃÓÚÏñ·ìÖÆÉ豸ÐÐÒµÕâÀà¶Ô¹¦Äܼ¯³É¶ÈºÍʵʱÐÔÒªÇó¸ßµÄ¹¤¿ØÐÐÒµ£¬ÆäʵÊDz»ÕýÈ·µÄ¡£ÕýÒòΪƾ½èEraSoC-1000CоƬ´¦ÀíÄÜÁ¦Ç¿¡¢×ÜÏßËٶȸߡ¢É豸¼¯³É¶È¸ßµÄÌص㣬ʹµÃϵͳÔÚÔËÐÐlinuxʱ£¬´¦ÀíÆ÷¿ÉÒԺܺõÄÍê³ÉʵʱÐÔ¹¤×÷£¬Í¬Ê±°ÑÈÎÎñµ÷¶È¡¢ÐÒé´¦Àí¡¢Êý¾Ý½»»»¡¢È˼ʽ»»¥½»ÓÉlinuxÀ´´¦Àí£¬Óû§»á·¢ÏÖÕû¸öϵͳ¿ª·¢¹ý³Ì»á±äµÃÇáËÉ×ÔÈç¡£
¡¡¡¡X£¬YÖá²½½øµç»úÇý¶¯¿ª·¢
¡¡¡¡XºÍYÖá²½½øµç»úÇý¶¯µÄÔÀíÊÇ£ºÃ¿¸ôÒ»¶¨µÄʱ¼ä¼ä¸ôͨ¹ýGPIO·¢ËÍÒ»¸ö²½½øÐźţ¬µç»úÐÐ×ßÒ»¸öÏàλ¡£¶øʱ¼ä¼ä¸ôµÄ´óСͨ¹ýEraSoC-1000CµÄʵʱʱÖÓÀ´¿ØÖÆ£¬Ê±¼ä¼ÆÊýÒ»µ½£¬ÊµÊ±Ê±ÖÓ²úÉúÒ»¸öÖжϣ¬CPUÔÚÖжϴ¦Àí²¢Ïò²½½øµç»ú·¢ËÍÒ»¸ö²½½øÃüÁî¡£X£¬YÖáµç»úµÄËٶȾÍͨ¹ýÕâЩʱ¼ä¼ä¸ôµÄ´óСµ÷Õû¡£µ±ÐèÒª¼ÓËÙʱ£¬¼õСÿ´ÎµÄʱ¼ä¼ä¸ô£¬·´Ö®¾ÍÊǼõËÙ¡£XºÍYÖáÇý¶¯³ÌÐòÀï·Ö±ð×¢²áÁËÒ»¸öʱÖÓÖжϴ¦Àí³ÌÐò£¬²¢ÔÚÇý¶¯ÀïÌṩһ¸öдº¯Êý¿ØÖÆʵʱʱÖӵļÆʱ´óСºÍ¿ªÊ¼¼Æʱ¡£µ±Ð廨³ÌÐòÆô¶¯£¬Í¨¹ý¸ÃÇý¶¯µÄдº¯Êý£¬Æô¶¯ÊµÊ±Ê±ÖÓ¼Æʱ¡£µ±Ô¤¶¨Ê±¼äµ½´ï£¬ÖжϲúÉú£¬Öжϴ¦Àí³ÌÐòÇý¶¯µç»ú²½½øÒ»¸öÏà룬´Ëʱ¸ù¾ÝÒ»¸öÐźÅÁ¿À´È·¶¨ÊÇ·ñ¼ÌÐøÒªÇý¶¯µç»ú£¬Èç¹ûÐèÒª¼ÌÐøÇý¶¯£¬ÔòÔٴγõʼ»¯ÊµÊ±Ê±ÖӵļÆʱ¡£
¡¡¡¡void x_timer_start(unsigned int time) //³õʼ»¯xÖáµÄʵʱʱÖÓ£¬timeµÄµ¥Î»9600Ãë ¡¡¡¡{ ¡¡¡¡era_writel((time * 32768) / 9600 +   ¡¡¡¡era_readl(ICTRTC_READ0),   ¡¡¡¡ICTRTC_MATCH1); ¡¡¡¡} ¡¡¡¡static irqreturn_t x_step_irq(int irq, void *_host, struct pt_regs *regs) ¡¡¡¡{ ¡¡¡¡struct era_host *host = _host; ¡¡¡¡x_step_go(); //xÖáµç»ú²½½øÒ»¸öÏàλ ¡¡¡¡if(x_go) //Èç¹ûxÖáÐèÒª¼ÌÐøÔËת£¬¸Ã    ±äÁ¿ÊÇÈ«¾Ö±äÁ¿£¬ÓÉÖ÷º¯Êý¸Ä±äÖµ ¡¡¡¡{ ¡¡¡¡x_time = x_get_time(host);//¼ÆËãÏ´Π    ¡¡¡¡²½½øµÄʱ¼ä¼ä¸ô ¡¡¡¡x_timer_start(x_time); ¡¡¡¡} ¡¡¡¡}
¡¡¡¡ZÖáµç»úµÄÇý¶¯¿ª·¢£º
¡¡¡¡ZÖáµç»úʹÓÃEraSoC-1000CµÄPWM½øÐпØÖÆ¡£EraSoC-1000CµÄPWMÇý¶¯²ÉÓÃLinuxͨÓõÄPWMÇý¶¯½Ó¿Ú£¬ËùÒÔÎÒÃÇÖ»ÒªÔÚÓ¦Óò㿪·¢ÏàÓ¦µÄ¿ØÖƳÌÐò¾Í¿ÉÒÔÁË¡£
¡¡¡¡ÀýÈ磬EraSoCµÄPWMÇý¶¯Ìṩһ¸öwriteº¯Êý¸øÓû§²ã£¬Óû§Í¨¹ý¸Ãº¯ÊýµÄ²ÎÊý¿ÉÒÔ¿ØÖÆPWMµÄÊä³ö·½²¨£º
¡¡¡¡ssize_t  pwm_write (struct file *filp, const char *buf, size_t count,loff_t *f_pos) ¡¡¡¡{ ¡¡¡¡#define CLK_PER_NS 48     //48Mhz       ¡¡¡¡bus freq ¡¡¡¡static unsigned char pBuf[3]; ¡¡¡¡/*pBuf[0]¸ßµçƽʱ¼ä(ns)£¬ ¡¡¡¡pBuf[1]µÍµçƽʱ¼ä(ns), ¡¡¡¡pBuf[2]ÊÇ·ñʹÄÜPWMµçƽÊä³ö*/ ¡¡¡¡copy_from_user(pBuf,buf,3); ¡¡¡¡era_writel(0, RPTC_CTRL); //Í£Ö¹PWM ¡¡¡¡if(pBuf[2] & GO)      //pBuf[2], ÊÇ·ñʹ      ¡¡¡¡ÄÜPWMÊä³ö ¡¡¡¡{ ¡¡¡¡era_writel(pBuf[0] * CLK_PER_NS, RPTC_HRC); ¡¡¡¡era_writel(pBuf[1] * CLK_PER_NS, RPTC_LRC); ¡¡¡¡era_writel(OE, RPTC_CTRL); //ʹÄÜ      ¡¡¡¡PWM·½²¨Êä³ö ¡¡¡¡} ¡¡¡¡return count; ¡¡¡¡}
¡¡¡¡ÏÔʾÆÁÇý¶¯
¡¡¡¡EraSoC-1000CµÄLinuxÄں˰üº¬±ê×¼µÄframebuffer½Ó¿ÚµÄLCDÇý¶¯³ÌÐò£¬Óû§Ò²Ö»Ðè°´ÕÕ±ê×¼µÄ¿ØÖÆLCDµÄº¯Êý½Ó¿Ú±àдӦÓóÌÐò¡£Í¨¹ýopen(¡°/dev/fb0, O_RDWR¡±)´ò¿ªLCDÏÔʾÉ豸£¬È»ºóͨ¹ýmmapº¯Êý½«ÏÔ´æÓ³Éäµ½Óû§¿Õ¼ä£¬Óû§ÏÖÔھͿÉÒÔͨ¹ý¼òµ¥µÄ¶ÁдÀ´¿ØÖÆÏԴ棬ÒÔ´ïµ½¿ØÖÆLCDÏÔʾµÄÄ¿µÄ¡£
¡¡¡¡´¥ÃþÆÁÇý¶¯
¡¡¡¡EraSoC-1000CµÄLinuxÄÚºËÒ²ÒѾ°üº¬´¥ÃþÆÁµÄ±ê×¼Çý¶¯£¬²ÉÓÃSPI½Ó¿Ú¡£Óû§Ö»ÐèÔÚ±àÒëQTµÄʱºò½«¸Ã´¥ÃþÆÁÇý¶¯¼ÓÈ룬¾Í¿ÉÒÔÖ±½ÓÔÚQTÏÂʹÓá£
¡¡¡¡UÅÌÇý¶¯
¡¡¡¡EraSoC-1000CµÄUÅÌÇý¶¯Ò²ÊDZê×¼µÄLinuxÇý¶¯¡£Óû§Ö»Ðè¼òµ¥µÄʹÓÃmountÃüÁUÅ̹ÒÔØ£¬È»ºóͨ¹ýopen, read, writeµÈ±ê×¼º¯Êý¶ÔUÅ̽øÐжÁд¡£
¡¡¡¡NAND FlashÇý¶¯
¡¡¡¡EraSoC-1000C²ÉÓÃ×îеÄYaffs2Îļþϵͳ¹ÜÀíNAND Flash¡£Óû§½Ó¿ÚÒ²ÊÇÊ®·ÖµÄ¼òµ¥£¬Èçͬ·ÃÎÊÆäËûÎļþϵͳһÑù£¬¿ÉÖ±½Óͨ¹ý¶Áдº¯Êý·ÃÎÊ¡£
¡¡¡¡·äÃùÆ÷£¬¶ÏÏߣ¬Ñ¹½Å£¬ÈÆÏß¼ì²âµÈÇý¶¯
¡¡¡¡ÕâЩ¹¦ÄܾùʹÓÃGPIOʵÏÖ£¬ÎÒÃÇΪÕâЩ¹¦ÄÜ·Ö±ðʵÏÖÁËÇý¶¯£¬ÔÚÇý¶¯ÀïÌṩһ¸ö¶Áº¯ÊýÀ´¿ØÖÆ¡£Óû§Ö»Ðè¼òµ¥µÄʹÓÃopenº¯Êý´ò¿ªÉ豸£¬¾Í¿ÉÒÔʹÓÃreadº¯Êý¶ÁÈ¡ÕâЩ´«¸ÐÆ÷µÄ״̬¡£
¡¡¡¡int erasoc_gpio_read(int signal) ¡¡¡¡{ ¡¡¡¡if(signal >= 96) ¡¡¡¡return 0; ¡¡¡¡if(signal >= 64) ¡¡¡¡{ ¡¡¡¡return ((1 << (signal-64)) & era_readl(ERASOC_GPIO2_DATRD)) ? 1 : 0; ¡¡¡¡} ¡¡¡¡else if(signal >= 32) ¡¡¡¡{ ¡¡¡¡return ((1 << (signal-32)) & era_readl(ERASOC_GPIO1_DATRD)) ? 1 : 0; ¡¡¡¡} ¡¡¡¡else ¡¡¡¡{ ¡¡¡¡return ((1 << signal) & era_readl(ERASOC_GPIO0_DATRD)) ? 1 : 0; ¡¡¡¡} ¡¡¡¡} ¡¡¡¡ssize_t eragpio_file_read(struct file *filp, char __user *buf, size_t count, loff_t *ppos) ¡¡¡¡{ ¡¡¡¡char val; ¡¡¡¡val = erasoc_gpio_read(GPION); ¡¡¡¡copy_to_user(buf, &val, 1); ¡¡¡¡return count; ¡¡¡¡} ¡¡¡¡GPIONÊǸ÷GPIOµÄ±àºÅ¡£
¡¡¡¡ÉϲãÓ¦ÓÃ
¡¡¡¡EraSoC-1000CµÄÉϲãÓ¦Óý¨Á¢ÓÚ»ùÓÚLinuxµÄÈí¼þƽ̨QtapiaÉÏ¡£QtapiaÊÇLinuxÈí¼þ³§ÉÌŲÍþÆæȤ¿Æ¼¼¹«Ë¾(Trolltech)רΪÊÖ»úµÈÒƶ¯É豸¿ª·¢µÄ²úÆ·£¬Ä¿Ç°¹úÄÚÅÅÃûÇ°Ê®µÄÊÖ»úÉú²úÉÌÓÐ7¸öÒѾѡÔñÁËÆæȤ×÷ΪǶÈëʽLinuxƽ̨µÄºÏ×÷»ï°é¡£
¡¡¡¡Ò²ÕýÊÇÒòΪQtapiaµÄʹÓû·¾³ÒÑÔÚ²»Öª²»¾õÖб»Ïû·Ñ´óÖÚËùÊìϤ£¬ÎÒÃÇÌØÒâÔڴ˽â¾ö·½°¸Àï²ÉÓÃÁËÀàËÆÊÖ»ú²Ù×÷µÄͼÏñ»¯Óû§½çÃ棬¾ÍÊÇΪÁËÈÃÏû·ÑÕßÔÚʹÓüÒÓõçÄÔÐ廨»úʱÔö¼Ó»¥¶¯µÄÌåÑ飬ʹµÃ²Ù×÷·ìÈÒ»ú²»ÔÙÊÇרҵÈËÔ±²ÅÓеļ¼ÄÜ¡£
¡¡¡¡Óû§¿ÉÒÔ¹ÜÀíÒª´ÌÐåµÄͼ°¸Îĵµ£¬ÏµÍ³Ò²Í¨¹ýÖ÷´°¿ÚÏÔʾºÍ´¥ÃþÆÁ½ÓÊÕÓû§ÊäÈë¡£µ±Óû§Í¨¹ý´¥ÃþÆÁµã»÷´°¿ÚÉϵİ´Å¥£¬Ó¦ÓóÌÐò¸ù¾ÝÕâЩ°´Å¥·Ö±ðµ÷ÓõײãµÄÇý¶¯³ÌÐòÍê³ÉÐ廨£¬ÈÆÏߣ¬¶ÁÈ¡»¨ÑùµÈµÈ¹¦ÄÜ¡£
¡¡¡¡½áÓï
¡¡¡¡×÷ΪµÚһ̨ʹÓùú²ú¸ßÐÔÄÜ´¦ÀíÆ÷µÄµçÄÔÐ廨»ú½â¾ö·½°¸£¬ÖпÆÒÚоµÄÑз¢ÍŶÓʼÖÕ°Ñ¡°¿Æ¼¼ÒÔÈËΪ±¾¡±µÄÀíÄî·ÅÔÚÊ×룬ÄǾÍÊÇÓÃÒµ½çÁìÏȵļ¼ÊõÈ¥´´Ôì´óÖڿɽÓÊܵĵç×Ó²úÆ·¡£ÊÂʵÒÑÖ¤Ã÷£¬Ò»¿ÅEraSoC-1000CоƬ¿ÉÌæ´úÁ½¿Å»ùÓÚARM7Äں˵ĹúÍâ´¦ÀíÆ÷»òÕßÊǹ¤¿ØÁìÓòµÄDSP£¬Í¬Ê±Ò²¿É½ÚÊ¡Ï൱ÊýÁ¿µÄÍâÉèоƬ¡£¶øÇÒEraSoC-1000CµÄ¶þ´Î¿ª·¢Ç±Äܾ޴ó£¬ÆäËù¾ß±¸µÄ¸ßËÙ´¦ÀíÄÜÁ¦ºÍ·á¸»µÄƬÉÏÉ豸£¬½«´ø¸ø·ìÖÆÉ豸ÐÐÒµµÄ¹¤³ÌʦÃÇÎÞÏ޵Ĵ´Òâ¿Õ¼ä£¬Èùú²ú·ìÖÆÉ豸Äܹ»ÕæÕýÒâÒåÉϵĹú²ú»¯£¬ÈÃÕâЩÉ豸¶¼Ìø¶¯×ÅÒ»¿Å¡°Öйúо¡±£¡
£¨±¾ÎÄÒѱ»ä¯ÀÀ 2660 ´Î£©
|
|
|
|
| | | |
|