[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian for ARM710µÄÖÐÎÄ»¯ÎÊÌâ




ha shao wrote:

> On Wed, Jan 24, 2001 at 10:27:04PM +0800, shuyong@public.nn.gx.cn wrote:
> > ¹ØÓÚARM710µÄÖÐÎÄ»¯µÄÎÊÌâ:
> >     ÉÏ»ØÌá³öÁËdebian for arm710 X WindowµÄÎÊÌ⣬µ½ÏÖÔÚ¶¼Ã»ÓÐÈËÖ¸µã£¬ËµÀÏʵ»°£¬
> > ÓÐЩʧÍû¡£ÒòΪÔÚÎÒÐÄÀdebianËƺõÊÇÎÞËù²»Äܵġ£ÏÖÔÚÎÊÌâËäȻûÓнâ¾ö£¬µ«Ò²ÓÐһЩ
> >
> > ½øÕ¹£¬Ï£Íû´ó¼Ò°ïæ½â¾ö¡£
>
> ÎÒÏëÕâÀïʹÓà Arm µÄûÓм¸¸ö£¨¿ÉÄÜÄ¿Ç°¾ÍÄãÒ»¸ö£©£¬Èç¹ûûÓлúÆ÷£¬
> ×ÔȻʲôҲ°ï²»ÉÏʲôæÁË¡£ÄãËù˵µÄÎÊÌ⣬Ӧ¸ÃÊÇ XFree86 µÄ³ô³æ£¬
> Ó¦¸ÃÊÇÔÚ xfree86 µÄÓʼþÁбíÖÐÌÖÂ۵ġ£
>

Æäʵ²»Òª°ÑÆäËüCPUµÄ³ÌÐòÏëÏóµÃÄÇôÉñÃØ¡£*nixºÍCµÄ¿ÉÒÆÖ²ÐÔÊǺÜÇ¿µÄ¡£
ÓÐʱÎÊÌâÒ²ÊÇͨÓõġ£ÎÒËùÏ£ÍûµÄ²»ÊǾßÌåÖ¸µ¼ÈçºÎ¶Ôarm±à³Ì£¬¶øÊǸ÷λ
ÔÚÖÐÎÄ»¯·½ÃæµÄ¾­Ñé¡£ÓÐʱÊÇÒ»¾äµãÐÑÃÎÖÐÈË¡£ºÎ¿ödebian¿ÉÒÔÔÚÕâô¶àµÄ
ƽ̨ÉÏÔËÐУ¬¶øÎÒÃÇÈ´²»ÄÜʹÖÐÎĵ½´¦¶¼ÓУ¬ÊDz»ÊÇÒ»ÖÖÒź¶£¿

>
> ÎÒÖªµÀÓ¢ÓïÊÇÒ»¸öÎÊÌ⣬µ«Ï£ÍûÄ㻹ÊÇÊÔ×ÅÓÃÓ¢ÓïÔÚÏà¹ØµÄÁбí½øÐÐ
> ÌÖÂÛ¡£ÒòΪ×÷Ϊһ¸öÏë½øÐпª·¢µÄ¡®hack¡¯£¬ÌرðÊÇÔÚ×ÔÓÉÈí¼þµÄÊÀ½ç£¬
> ÊDZØÐëÒª¾­¹ýʹÓÃÓ¢ÓïÕâ¸öÍ´¿àµÄ¡£ÊÂʵÉÏÕâ¸öÊÀ½çÉϲ»½ö½öÊÇÖйú
> È˲»½²Ó¢ÓºÜ¶à¹ú¼ÒµÄÈ˶¼²»ÊÇʹÓÃÓ¢ÓïµÄ£¬ËùÒÔÄãÔÚÓ¢ÓïµÄÓʼþ
> ÁбíÖо­³£¿´µ½²»Í¨µÄÓ¢Óµ«Ã»ÓÐÈË»áÔÚÒâµÄ¡£´ó¼ÒµÄÄ¿µÄÊǽâ¾ö
> ÎÊÌ⣬ÊÇÓóÌÐò½»Ì¸µÄ¡£¿ªÊ¼ºÜ±ðŤ£¬µ«ÎÒ±£Ö¤ºÜ¿ìÄã¾Í»á¾õ×ÅûÓÐ
> ʲôÁË¡£µ½µ×Ó¢Óï²»ÊÇÎÒÃǵÄĸÓ˵µÄ²»ºÃûÓÐʲô£¬½âÊͲ»Çå¾Í
> ÔÙ½âÊÍÒ»±é£¬×îºóÄܶ®¾ÍÐС£

ÎÒµÄÓ¢ÎÄȷʵ²î£¬²»ÊǶñ²¹Ò»Á½ÌìËùÄܽâ¾öµÄ¡£²»¹ýÎÒ»áŬÁ¦µÄ¡£

>
>
> > Ô­±¾XDrawString16²»ÄÜ»­ºº×ÖµÄÎÊÌ⣬ÏÖÔÚÒѾ­ÖªµÀÔ­Òò¡£Ô­À´ÊÇûÓÐÉèÖÃÇ°¾°É«¡£
> > ÔÚX WindowµÄ±à³ÌÀý×ÓÔø¾­Ìáµ½Õâ¸öÊÂÇ飬X
> > Window³õʼֻÓб³¾°É«¶øûÓÐÇ°¾°É«¡£µ«ÊÇ
> > X86ƽ̨ÊÇÁ½ÕßÊÇÉèÖúõġ£¿´À´¿çƽ̨ÊDz»ÄÜÏ뵱ȻµÄ¡£
> >
>
> XFree86 ¿ªÊ¼ÊÇÒÆÖ²µ½ intel x86 ϵͳÉϵģ¬È»ºóÔÙÏòÆäËûµÄϵͳÉÏ
> ÒÆÖ²£¬ËùÒÔ¶Ô¸÷¸öϵͳµÄÖ§³Ö³Ì¶È²»ÊÇÏàͬµÄ£¬Ò²²»¿ÉÄÜÍêÈ«Ïàͬ¡£
> ÕâÓ¦¸ÃÊÇÒÆÖ²µ½ ARM ÉÏʱµÄÒ»¸ö³ô³æ(ûÓÐÔ¤ÉèÇ°¾°ÑÕÉ«£¿)£¬
> ×îºÃ»Ø±¨¸ø Xfree86.
>

Õâµ¹²»ÊÇxfree86µÄbug£¬¶øÊÇX WindowµÄ´«Í³¡£Ã¿¸öwindow³õʼ¶¼Ã»ÓÐÇ°¾°É«£¬È»ºó³ÌÐò
Ç××ÔÉèÖá£ÕâÒ²ÊÇX³ÌÐòµÄ¹ßÀý¡£

>
> > µ«ÊÇÎÊÌâûÓнâ¾ö¡£XDrawString16ÔÚµÚÒ»´Î»­ºº×Öʱ»áÔÚ×Ö·û´®Ç°Ãæ¼ÓÉÏÒ»¸öĪÃûÆäÃî
> > µÄ×Ö£¬Í¬Ê±×îºóÒ»¸öºº×ÖûÓл­³öÀ´£¨Èç¹û°Ñ×Ö·û´®µÄ³¤¶È¼Ó1Ò²¿ÉÒÔÏÔʾ×îºóÒ»¸öºº×Ö£©¡£
>
> > Èç¹ûÄÜˢд°¿Ú¾ÍÕý³£ÁË¡£»¹ÓÐXmbString/XwcString²»ÄÜÕý³£ÏÔʾºº×Ö´®¡£Õâ¸öÎÊÌâ±È½Ï
> > Âé·³¡£Ô­ÒòÊǽṹ¶ÔÆëµÄÎÊÌâ¡£ÒòΪarm710ÒªÇó2×Ö½Ú(word)¶ÔÆ룬ËùÒÔgcc
> > for arm¸É´à
> > ¾ÍÊÇ4×Ö½Ú(dword)¶ÔÆë¡£½á¹ûsizeof(XChar2b)==4,¶ø²»ÊÇ==2£¬Õû¸öºº×Ö´®×ÔÈ»¶Ì½ïÉÙÁ½
> > ÁË:-)¡£²»ÖªµÀgccÓÐʲôѡÏîÖ¸Áî±àÒë°´ÕÕ2×Ö½Ú(word)¶ÔÆëµÄ£¿Ò²Çë´ó¼Ò°ÑÎÒµÄÎÊÌâÌá½»µ½
>
> > debian-XµÄÌÖÂÛ×éÉÏ¡£
>
> sizeof(XChar2b) == 4»áÓ°ÏìÂð£¿ÕâЩ¶¼Ó¦¸ÃÔÚ xfree86 µÄ ARM port ÉÏ
> ½â¾ö£¬debian-x Ö÷ÒªÌÖÂÛµÄÊÇÔÚ debian ÉÏ¶Ô X ϵͳµÄ°ü×°£¬°²×°¡£
>

ÒòΪһ¸ö¼ÙÉ裬sizeof(XChar2b) == 4»áÓÐÓ°Ïì¡£
Ò»°ãÏÔʾºº×ÖÊÇÕâÑù£º
char *chinese = "ÕâÊÇÖÐÎÄ×Ö·û´®";
char *ch_str;
XFontStruct *font = XLoadQueryFont (display,
"-isas-*-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0");

 XSetFont (display, gc, font->fid);
 length = strlen (chinese);
 ch_str = strdup (chinese);
 for (i = 0; i < length; i++) {
  ch_str[i] &= 0x7F;
 }
 length /= 2;
 XDrawString16 (display, window, gc, x, y, (_Xconst XChar2b *)ch_str, length + 1);

×¢Òâch_strµÄʹÓã¬ÕâÊDz»¹æ·¶ºÍ²»¿ÉÒÆÖ²µÄ¡£Ö÷ÒªÊÇlittle/big endianµÄÎÊÌâ¡£XChar2bÊÇ
ÕâÑù¶¨Ò壺

typedef struct {
 unsigned char byte1;
 unsigned char byte2;
} XChar2b;
»ò£º
typedef struct {
 unsigned char byte2;
 unsigned char byte1;
} XChar2b;

ÕâÊÇÓÉlittle/big endianµÄÌØÐÔÀ´¾ö¶¨¡£²»¹ÜÔõÑù£¬sizeof (XChar2b) == 2¡£ÉÏÊö´úÂë
Ó¦¸ÃÊÇ£º£¨ÕâÒ²ÊÇXÄÚ²¿´úÂëʹÓõļ¼ÇÉ£©

char *chinese = "ÕâÊÇÖÐÎÄ×Ö·û´®";
XChar2b *ch_str;
XFontStruct *font = XLoadQueryFont (display,
"-isas-*-medium-r-normal--16-160-72-72-c-160-gb2312.1980-0");

 length = strlen (chinese);
 ch_str = (XChar2b *)malloc (length + sizeof (XChar2b));
 memset (ch_str, 0, length + sizeof (XChar2b));
 for (i = 0; i < length / sizeof (XChar2b); i++) {
  ch_str[i].byte1 = chinese[i * 2] & 0x7F;
  ch_str[i].byte2 = chinese[i * 2 + 1] & 0x7F;
 }
 length /= sizeof (XChar2b);
 XDrawString16 (display, window, gc, x, y, (_Xconst XChar2b *)ch_str, length + 1);

¿ÉÄÜÊÇÒòΪЧÂÊÎÊÌ⣬XDrawString16¼ÙÉèÿ¸ö×ÖÊǽôÃÜÅÅÁнøÐÐÏÔʾµÄ¡£Äã¿ÉÒÔÏëÏó
µ±sizeof(XChar2b) == 4ʱµÄÇé¿ö¡£ËùÒÔÎÒҪѰÕÒgcc¹ØÓڽṹ¶ÔÆëµÄÑ¡Ïî¡£¿´¿´ÎÒµÄÏë·¨
ÊÇ·ñÕýÈ·¡£




Reply to: