ǶÈëʽLinuxϵͳCGI³ÌÐòÉè¼Æ¼¼Êõ
ǶÈëʽLinuxϵͳCGI³ÌÐòÉè¼Æ¼¼Êõ
ÕªÒª£ºÔÚÏêϸ½éÉÜÒ»ÖÖǶÈëʽWeb·þÎñÆ÷BOAµÄʵÏÖÓëÅäÖ÷½·¨µÄ»ù´¡ÉÏ£¬ÒÔÒ»¸öWebÔÚÏßÔ¶³Ì¼à¿ØGPIO£¨Í¨ÓÃÊäÈë/Êä³ö£©µÄ³ÌÐòΪʵÀý£¬½éÉÜǶÈëʽLinuxϵͳÏÂCPU³ÌÐòÉè¼Æ¼¼Êõ¡£
¹Ø¼ü´Ê£ºÇ¶ÈëʽϵͳLinux BOA CGI GPIO
1 ¸ÅÊö
Ëæ×Å»¥ÁªÍøÓ¦ÓÃµÄÆÕ¼°£¬Ô½À´Ô½¶àµÄÐÅÏ¢»¯²úÆ·ÐèÒª½ÓÈ뻥ÁªÍøÍ¨¹ýWebÒ³Ãæ½øÐÐÔ¶³Ì·ÃÎÊ¡£Ç¶ÈëʽWebϵͳÌṩÁËÒ»ÖÖ¾¼Ã¡¢ÊµÓõĻ¥ÁªÍøÇ¶Èëʽ½ÓÈë·½°¸¡£ÕâÀï½áºÏÒ»ÖÖǶÈëʽWeb Server BOAÀ´½éÉÜǶÈëʽLinuxϵͳϵÄCGI³ÌÐòÉè¼Æ¼¼Êõ¡£
2 Web Server BOAµÄʵÏÖÓëÅäÖÃ
2.1 uClinuxÏ£¬Ö÷ÒªÓÐÈý¸öWeb Server:HTTPD¡¢THTTPDºÍBOA¡£HTTPDÊÇ×î¼òµ¥µÄÒ»¸öWeb Server,ËüµÄ¹¦ÄÜ×îÈõ£¬²»Ö§³ÖÈÏÖ¤£¬²»Ö§³ÖCGI¡£THTTPDºÍBOA¶¼Ö§³ÖÈÏÖ¤¡¢CGIµÈ£¬¹¦Äܶ¼±È½ÏÈ«¡£BOAÊÇÒ»¸öµ¥ÈÎÎñµÄСÐÍHTTP·þÎñÆ÷£¬Ô´´úÂ뿪·Å¡¢ÐÔÄÜÓÅÐã£¬ÌØ±ðÊʺÏÓ¦ÓÃÔÚǶÈëʽϵͳÖС£Ä¿Ç°µÄuClinuxµÄ´úÂëÖÐÒѾ°üº¬BOAµÄÔ´´úÂë¡£ÔÚuClinuxÏÂʵÏÖBOA£¬Ö»ÐèÒª¶ÔBOA×öһЩÅäÖúÍÐ޸ġ£ÒÔÏÂÊÇÅäÖõĹý³Ì¡£
£¨1£©±àÒëBOAµ½ÄÚºË
Ê×ÏÈ£¬ÐèÒª°ÑBOA±àÒëµ½Äںˣ¬¼´Ö´ÐÐmake menuconfig£¬ÔÚÓ¦ÓóÌÐòÑ¡µ¥ÖÐnetwork applicationÏîÏÂÃæÑ¡Ôñboa¡£¸Ã²Ù×÷ÐèÒªÖØÐ±àÒëÄںˡ£
£¨2£©±àÖÆÅäÖÃÎļþboa.conf
ÔÚLinux²Ù×÷ϵͳÏ£¬Ó¦ÓóÌÐòµÄÅäÖö¼ÊÇÒÔÅäÖÃÎļþµÄÐÎʽÌṩµÄ£¬Ò»°ã¶¼ÊÇ·ÅÔÚÄ¿±ê°å/etc/Ŀ¼Ï»òÕß/etc/configĿ¼Ï¡£µ«boaµÄÅäÖÃÎļþboa.contÒ»°ã¶¼ÐýתÔÚÄ¿±ê°å/home/httpd/Ŀ¼Ï¡£
ÀýÈ磬һ¸öµäÐ͵Äboa.confÎļþ¸ñʽÈçÏ£º
ServerName Samsung-ARM
DocumentRoot/home/httpd
ScriptAlias/cgi-bin/home/httpd/cgi-bin/
ScriptAlias/index.html/home/httpd/index.html
ËüÖ¸¶¨ÁËHTMLÒ³Ãæ±ØÐë·Åµ½/home/httpdĿ¼Ï£¬cgiÍⲿÀ©Õ¹³ÌÐò±ØÐë·Åµ½/home/httpd/cgi-binĿ¼Ï¡£
£¨3£©±àÒëÉÕдÄÚºË
ÖØÐ±àÒëÄں˺ó£¬Í¨¹ýÉÕд¹¤¾ßÉÕдÄںˣ¬¾Í¿ÉÒÔÔÚPCÉÏͨ¹ýIEä¯ÀÀÆ÷·ÃÎÊ¿ª·¢°åÉϵÄWeb Server¡£ÀýÈ磬ÊäÈ뿪·¢°åµÄIPµØÖ·http://192.168.0.101£¬¼´¿É·ÃÎʵ½×Ô¼º×öµÄÍøÒ³index.htmlÁË¡£²¢ÇÒ£¬Í¨¹ý±àдCGIÍⲿÀ©Õ¹³ÌÐò£¬¿ÉÒÔʵÏÖ¶¯Ì¬Web¼¼Êõ£¬ÏÂÃæ½«Ïêϸ½éÉÜ¡£
2£®2 ¾ßÓÐMMUƽ̨µÄLinuxÏÂB0AµÄʵÏÖÓëÅäÖÃ
¶ÔÓÚÓÐMMU£¨ÄÚ´æ¹ÜÀíµ¥Ôª£©µÄƽ̨£¬ÈçarmlinuxºÍppclinux£¬¿ÉÒÔµ½ÍøÉÏÏÂÔØÒ»¸öÖ÷Á÷°æ±¾µÄboa·¢Ðаü¡£ÒòΪÊÇÔËÐÐÔÚÄ¿±êϵͳ£¬ËùÒÔÒªÓý»²æ±àÒ빤¾ß±àÒ룬¼´ÐèÒªÐÞ¸Äboa/src/MakefileÀïÃæµÄ±àÒëÆ÷¡£ÀýÈ磺
CC=/LinuxPPC/CDK/bin/powerpc-lin
Ïà¹ØÎĵµ£º
´´½¨×ÀÃæÍ¼±ê
Ŀǰ½«ÍøÂçÓ¦ÓÃÀ©Õ¹µ½×ÀÃæÊÇÒ»¸öÇ÷ÊÆ£¬´æÔÚןܶà½â¾ö·½°¸£¬±¾ÎÄÒÔ Mozilla Prism ΪÀý£¬ÀàËÆµÄ·½·¨Í¬ÑùÊÊÓÃÓÚ Google Chrome ¡£
1. µ½ Mozilla Prism µÄÍøÕ¾ÉÏÏÂÔØ Prism£¬µã»÷ Download Now Ö®ºó»áÌáʾÓÐÁ½ÖÖ£¬Ò»ÖÖÊÇÒÔ Mozilla Firefox À©Õ¹µÄ·½Ê½£¬ÊʺÏÒѾ°²×°ÓÐ Firefox µÄÅóÓÑ£»Ò»Ö ......
±¾ÎÄÖн«½²Êölinux»·¾³±à³ÌÖÐÏ̵߳ÄʹÓᣲ»Ëµ·Ï»°Ö±½ÓÉÏ´úÂ룺
#include <pthread.h>
#include <assert.h>
struct ThreadData
{
int i;
};
void * ThreadProc(void* arg)
{
ThreadData* data = static_cast<ThreadData*>(arg);
//do something
pthread_exit(data);
}
int main() ......
ÔÚÆ½³£µÄ×÷ÒµÖУ¬ÓÐʱºòÀÏʦÈÃ×Ô¼ºÊµÏÖÖîÈçcatµÈÀàµÄ³ÌÐò£¬ÓÐʱºò½ÐÓÃshellʵÏÖ£¬ÓÐʱºòÓÃcʵÏÖ£¬µ«ÊÇÎÒ¾³£Ò»µãÍ·Ð÷¶¼Ã»ÓУ¬²»¹ýÎÒÏëµ½linux¿ªÔ´µÄ£¬ÃüÁî´úÂë¿ÉÒÔÄÃÀ´²Î¿¼Ï°¢£¬ËùÒÔÎÒ¾ÍÏë¿´¿´linuxÃüÁîµÄÔ´´úÂ룬ÓÚÊǾͿªÊ¼Á˰ڶɹ·¹·µÄËÑË÷¹ý³Ì¡£´Ó½á¹ûÀ´¿´£¬ÓÐÁ½ÖÖÇé¿ö£¬Ò»ÖÖÊǸøÓèrpmµÄ°üµÄÐÎʽ£»ÁíÒ»ÖÖÊÇ»ùÓÚdeb°üµÄÐ ......
Á´½ÓÎļþÓеãÀàËÆÓÚWindows µÄËùν¿ì½Ý·½Ê½£¬µ«²¢²»ÍêȫһÑù¡£Á´½ÓÓÐÁ½ÖÖ·½Ê½£¬ÈíÁ´½ÓºÍÓ²Á´½Ó¡£
¡¡¡¡ÈíÁ´½ÓÎļþ
¡¡¡¡ÈíÁ´½ÓÓֽзûºÅÁ´½Ó£¬Õâ¸öÎļþ°üº¬ÁËÁíÒ»¸öÎļþµÄ·¾¶Ãû¡£¿ÉÒÔÊÇÈÎÒâÎļþ»òĿ¼£¬¿ÉÒÔÁ´½Ó²»Í¬ÎļþϵͳµÄÎļþ¡£Á´½ÓÎļþÉõÖÁ¿ÉÒÔÁ´½Ó²»´æÔÚµÄÎļþ£¬Õâ¾Í²úÉúÒ»°ã³ÆÖ®Îª"¶ÏÁ´"µÄÎÊÌâ(»òÔ»“ÏÖ ......
ÕâÒ»½ÚÎÒÃÇÀ´¿´¿´ÆäËûÏ̺߳¯Êý£º
int pthread_tryjoin_np(pthread_t thread_handle, void ** thread_return);
int pthread_timedjoin_np (pthread_t thread_handle, void **thread_return, __const struct timespec *abstime);
pthread_tryjoin_np»á¿ÉÒÔÓÃÀ´ÅжÏthread_handleÖ¸ÏòµÄÏß³ÌÊÇ·ñÒѾÖÐÖ¹£¬Èç¹ûûÓÐÔò*thre ......