½ñÌìÊÇ£º    ¡¤ ·¢²¼ÐÅÏ¢ ¡¤ Óû§×¢²á ¡¤ Óû§ÖÐÐÄ  ÉèΪÊ×Ò³       ¼ÓÈëÊղؠ   
´´ºçÐ廨Íø
ÖÆ°æÅàѵ Ð廨ÉÌ³Ç Ð廨ÖÆ°æ Ð廨֪ʶ Ð廨ͼ°¸ ÖÆ°æÉ豸 ÖÆ°æÈëÃÅ Ð廨¼ÒÔ°
ÍøÂçÖư橯 Ð廨ͼ°¸©¯ ´ÌÐå×ÊѶ©¯ Íþ¶û¿ËÄ·©¯ ÊÖ¹¤´ÌÐ婯 ·þ×°Éè¼Æ©¯ ³§¼ÒÊÕ¼©¯ Ìﵺ½Ì³Ì©¯ »¨ÑùÏÂÔØ©¯ Ð廨Èí¼þ
Èí¼þÏÂÔØ©¯ ¹©ÇóÐÅÏ¢©¯ ÆóÒµ»ÆÒ³©¯ È˲ÅÊг¡©¯ ÊÓƵ½Ì³Ì©¯ Ó¡»¨¼¼Êõ©¯ Ïä°üÊÖ´ü©¯ »¨Ñù¹âÅÌ©¯ ¶¯»­½Ì³Ì©¯ ·ÂÕæÈíÇý©¯ ´ÌÐåͼ°¸
¼ÒÓõçÄÔÐ廨»ú½â¾ö·½°¸
×÷Õߣº  ³ö´¦£º´´ºçÐ廨Íø  ¸üÐÂʱ¼ä£º 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 ´Î£©
 ·¢²¼ÈË£ºÐ廨Íø
 ¡ú ÍƼö¸øÎҵĺÃÓÑ
ÉÏƪÎÄÕ£º²¨Ë¿Ìﵺ12Ð廨Èí¼þµ¥¶ÀÎÄ×ֱ༭¹¦Äܽ²½â
ÏÂƪÎÄÕ£ºtajima12˳ÐòÊÓͼµÄÓÅ»¯
  ¡ú Ïà¹ØÎÄÕÂ
µçÄÔÐ廨»úÊÇÒ»Öָ߶È×Ô¶¯»¯µÄ·ìÈÒÉ豸 µçÄÔÐ廨»úһЩ³£¼û¹ÊÕϼ°ÆäάÐÞ·½·¨
µçÄÔÐ廨»úÈÕ³£µç¿Øϵͳ±£Ñøά»¤ µçÄÔ´ÌÐå»ú¶ÏÏß¼ì²âָʾµÆ¾­³£ÁÁ
Ð廨»úÊÇÈçºÎ¹¤×÷µÄ¡¢Õë¸ËÏÂÕ뿨ËÀÈçºÎάÐÞ£¿ С¸öÍ·´óÖǻ۵ÄBrother¼ÒÓÃÐ廨»ú
Ð廨»ú¼ôÏßÃæÏ߶ÌÓëÃæÏߵij¤¶ÈάÐÞ Ð廨»úÀ϶ÏÏߵĹÊÕÏ·ÖÎöÓëÅųý¼¼ÇÉ
Ð廨»úÒ²¿ÉÒÔ¶à»úÁªÍø¹¦ÄÜÓëÖ§³ÖÎÞÏßÒ£¿ØÆ÷ µçÄÔÐ廨»úÈçºÎ½øÐÐÑÜ·ìµÄ²Ù×÷·½·¨

  ¡ú ÆÀÂÛÄÚÈÝ (µã»÷²é¿´)   ¹²0ÌõÆÀÂÛ£¬Ã¿Ò³ÏÔʾ15ÌõÆÀÂÛ   ä¯ÀÀËùÓÐÆÀÂÛ
£¨Ã»ÓÐÏà¹ØÆÀÂÛ£©
  ¡ú ·¢±íÎÒµÄÆÀÂÛ
 ÄúÊÇ·ñ»¹Ã»ÓÐ ×¢²á »ò»¹Ã»ÓÐ µÇ½ ±¾Õ¾£¿£¡
µçÄÔÐ廨ÖÆ°æʵµØÅàѵ
Íþ¶û¿ËÄ·Ð廨ÖÆ°æ½Ì³Ì
µçÄÔÐ廨ͼ°¸»¨Ñù
ÈíÇý¸ÄUSB½Ó¿Ú·ÂÕæÈíÇý
ÍƼöÎÄÕÂ
¡¤ Íþ¶û¿ËÄ·E4.2µÄһЩ»ù´¡µÄÐ廨ÖÆ°æʹÓý̳Ì
¡¤ Ð廨³§Ê¹ÓõĵçÄÔÐ廨ÏßÖÖÀà·±¶à£¬Ö÷Òª°üÀ¨ÒÔϼ¸...
¡¤ µçÄÔÐ廨»úÊÇÒ»Öָ߶È×Ô¶¯»¯µÄ·ìÈÒÉ豸
¡¤ ѧϰµçÄÔÐ廨ÖÆ°æÇ°¾°ÔõôÑù£¬¹¤×÷»ú»áºÃÂð£¿
¡¤ ¹úÍâ¹ã·ºÊ¹ÓõÄ7¸öµÄµçÄÔÐ廨ÖÆ°æÈí¼þ½éÉÜ£¬Äã»á...
¡¤ µçÄÔÐ廨»ú¶ÏÏßÊÇ´ÌÐåÉú²úÖг£¼ûµÄÎÊÌâ
¡¤ Íþ¶û¿ËÄ·4.2ͨ¹ý¶àÖÖ¹¦ÄܺͲÙ×÷À´Ìá¸ßÉú²úЧÂÊ
¡¤ Íþ¶û¿ËÄ·wilcomµçÄÔÐ廨´ò°æÈí¼þ£ºÃ«½íÐå¡¢...
¡¤ Íþ¶û¿ËÄ·4.2Ð廨ÖÆ°æÈí¼þʹÓÃÐĵúÍÓŵã½éÉÜ
¡¤ µçÄÔÐ廨»úһЩ³£¼û¹ÊÕϼ°ÆäάÐÞ·½·¨
¡¤ ÂÒÕëÐå»úÐå»­_ÂÒÕëÐå×°Êλ­_ÂÒÕëÐå³ÉÆ·_»úÐåËÕ...
¡¤ Wilcom( »ã¾©)Ð廨¹¤×÷ÊÒe1.5Ð廨Éè...
¡¤ ÈíÇýתUÅÌ·ÂÕæÈíÇý_´ÅÅ̸ÄUSB·ÂÕæÈíÇýÅú·¢_...
¡¤ Êý¿Ø»ú´²£¬CNC,ÏßÇиµç»ð»¨»ú£¬Ð廨»ú£¬Èí...
¡¤ Ìﵺ,Íþ¶û¿ËÄ·µçÄÔÐ廨ÖÆ°æÅàѵÊÓƵ½Ì³Ì
¡¤ ¸£½¨ÈªÖÝʯʨÐ廨ÖÆ°æÅàѵ,Ð廨´ò´øÅàѵ
¡¤ ÀÏÐ廨»ú¼ÓUSBÅÌÖ®·½·¨
Ð廨´ò´ø ©¯  Ð廨Åàѵ ©¯  ÁªÏµÎÒÃÇ ©¯  ¸¶¿î·½Ê½ ©¯  ÐÂÊÖѧϰ
°æȨËùÓУº´´ºçÐ廨Íø  ×Éѯµç»°:0595-88694600
   ×ÉѯQQ£º    ÓÊÏ䣺415122550     
  µØÖ·£º¸£½¨ÈªÖÝ    ÃöICP±¸12016239ºÅ-4