LinuxÄں˼°ARMµÄÄÚ´æ¹ÜÀí
»¶Ó»Øµ½KernelÖÐ……
¼ÌÐøËµ__vet_atagsº¯Êý£¬Õâ¸öº¯ÊýÈԾɶ¨ÒåÔÚarch\arm\kernel\head-common.sÎļþÖУº
/* Determine validity of the r2 atags pointer. The heuristic requires
* that the pointer be aligned, in the first 16k of physical RAM and
* that the ATAG_CORE marker is first and present. Future revisions
* of this function may be more lenient with the physical address and
* may also be able to move the ATAGS block if necessary.
*
* r8 = machinfo
*
* Returns:
* r2 either valid atags pointer, or zero
* r5, r6 corrupted
*/
__vet_atags:
tst r2, #0x3 @ aligned?
bne 1f
ldr r5, [r2, #0] @ is first tag ATAG_CORE?
subs r5, r5, #ATAG_CORE_SIZE
bne 1f
ldr r5, [r2, #4]
ldr r6, =ATAG_CORE
cmp r5, r6
bne 1f
mov pc, lr @ atag pointer is ok
1: mov r2, #0
mov pc, lr
ENDPROC(__vet_atags)
ÓÉTIµÄоƬÊÖ²áÖª£¬OMAP3430µÄSDRAMµØÖ·¿Õ¼ä×Ô0x80000000Æð£¬¼Æ1GB¿Õ¼ä¡£º¯Êý¿ªÊ¼µÄ×¢ÊÍÃ÷È·ÒªÇóATAG±íÐèÒªÔÚRAMÎïÀíµØÖ·Ç°16KB£¬¼´0x80000000-0x80004000·¶Î§ÄÚ£¬r2µÄ0x80000100Âú×ã´ËÒªÇó¡£¼òµ¥µÄÅжÏÁËÒ»ÏÂATAG±íµÄÆðʼµØÖ·ÊÇ·ñ¶ÔÆë£¬ÊÇ·ñÒÔATAG_CORE×÷Ϊ¿ªÍ·±êÖ¾£¬¸Ãº¯Êý·µ»Ø¡£
__create_page_tablesº¯Êý£¬ÕâÊÇÒª·ÖÎöµÄÖØµãº¯Êý£¬¸Ãº¯Êý¾ÍÔÚarch\arm\kernel\head.sÎļþĩβ¡£
ÏÈÀ´¿´Ò»¸öºê¶¨Ò壺
.macro pgtbl, rd
ldr \rd, =(KERNEL_RAM_PADDR - 0x4000)
.endm
KERNEL_RAM_PADDRµÄ¶¨ÒåΪ£º
#define KERNEL_RAM_PADDR (PHYS_OFFSET + TEXT_OFFSET)
PHYS_OFFSETÔÚÎļþarch\arm\plat-omap\include\mach\memory.hÖУ¨ÔõôÕÒµ½ÕâÀïµÄ£¬ÆäʵÊÇarch\arm\kernel\head.sÖаüº¬ÁËarch\arm\include\asm\memory.hÖÐÓÖ°üº¬ÁËarch\arm\plat-omap\include\mach\memory.hµÄÔµ¹Ê……£©¶¨ÒåΪ0x80000000£¬¶øTEXT_OFFSETÔòÐèÒªÔÚMakefileÖÐѰÕÒµ½´ð°¸¡£arch\arm\MakefileÖж¨Òå
……
textofs-y := 0x00008000
……
TEXT_OFFSET := $(textofs-y)
¿É¼û£¬TEXT_OFFSETµÄֵΪ0x00008000£¬Ôٻص½ºêpgtbl£¬¿É¼ÆËã³öKERNEL_RAM_PADDRµÄֵΪ0x80000000+0x00008000=0x80008000×îºó¸³¸ø¼Ä´æÆ÷ֵΪ0x80008000-0x4000=0x
Ïà¹ØÎĵµ£º
Òýµ¼ Linux® ϵͳµÄ¹ý³Ì°üÀ¨ºÜ¶à½×¶Î¡£²»¹ÜÄúÊÇÒýµ¼Ò»¸ö±ê×¼µÄ x86 ×ÀÃæÏµÍ³£¬»¹ÊÇÒýµ¼Ò»Ì¨Ç¶ÈëʽµÄ
PowerPC® »úÆ÷£¬ºÜ¶àÁ÷³Ì¶¼¾ªÈ˵ØÏàËÆ¡£±¾ÎĽ«Ì½Ë÷ Linux
µÄÒýµ¼¹ý³Ì£¬´Ó×î³õµÄÒýµ¼µ½Æô¶¯µÚÒ»¸öÓû§¿Õ¼äÓ¦ÓóÌÐò¡£ÔÚ±¾ÎĽéÉܵĹý³ÌÖУ¬Äú½«Ñ§Ï°µ½¸÷ÖÖÓëÒýµ¼ÓйصÄÖ÷Ì⣬ÀýÈçÒýµ¼¼ÓÔØ³ÌÐò¡¢Äں˽âѹ¡¢³õʼ
RA ......
ÔÚvMware×°ÉÏlinuxÊó±êÎÞ·¨Ê¹ÓÃÎÊÌâ½â´ð
×òÌì×°ÁËLinux+VMware£¬»¹Óõúúõ쬽ñÌìÊó±ê¾Í²»ÄÜÓã¬ÏÖÔÚÖÕÓÚ°ÑÎÊÌâ½â¾öÁË£¡
Ŀǰ´ó²¿·ÖÊó±êÊÇusb½Ó¿ÚµÄ£¬ÌرðÊDZʼDZ¾¡£ÔÚvMware×°ÉÏlinuxʱÊó±êÀàÐÍÑ¡Ôñ´ø»¬ÂÖµÄUSBºó£¬½øÈëϵͳʱ½«³öÏÖÊó±êÎÞ·¨Ê¹ÓõÄÇé ......
¼ò¶øÑÔÖ®,²úÉú¶Î´íÎó¾ÍÊÇ·ÃÎÊÁË´íÎóµÄÄÚ´æ¶Î£¬Ò»°ãÊÇÄãûÓÐȨÏÞ£¬»òÕ߸ù±¾¾Í²»´æÔÚ¶ÔÓ¦µÄÎïÀíÄÚ´æ,ÓÈÆä³£¼ûµÄÊÇ·ÃÎÊ0µØÖ·.
Ò»°ãÀ´Ëµ,
¶Î´íÎó¾ÍÊÇÖ¸·ÃÎʵÄÄڴ泬³öÁËϵͳËù¸øÕâ¸ö³ÌÐòµÄÄÚ´æ¿Õ¼ä£¬Í¨³£Õâ¸öÖµÊÇÓÉgdtrÀ´±£´æµÄ£¬ËûÊÇÒ»¸ö48λµÄ¼Ä´æÆ÷£¬ÆäÖеÄ32λÊDZ£´æÓÉËüÖ¸ÏòµÄ
gdt±í£¬ºó13λ±£´æÏàÓ¦ÓÚgdtµÄϱ꣬×îºó3 ......
½ø³ÌÊdzÌÐòÖ´ÐÐʱµÄÒ»¸öʵÀý£¬Êdzä·ÖÃèÊö³ÌÐòÒѾִÐе½ºÎÖ̶ֳȵÄÊý¾Ý½á¹¹µÄ»ã¼¯¡£ÔÚlinuxÖУ¬³£½«½ø³Ì³ÆÎªÈÎÎñ£¨task£©»òÕßỊ̈߳¨thread£©¡£½ø³ÌµÄÄ¿µÄ¾ÍÊdzе£·ÖÅäϵͳ×ÊÔ´µÄʵÌå¡£
µ±Ò»¸ö½ø³Ì´´½¨Ê±£¬¼¸ºõÓ븸½ø³ÌÏàͬ¡£½ÓÊܸ¸½ø³ÌµØÖ·¿Õ¼äµÄÒ»¸öÂß¼¿½±´£¬²¢´Ó½ø³Ì´´½¨ÏµÍ³µ÷ÓõÄÏÂÒ»ÌõÖ¸ÁʼִÐÐÓ븸½ø³ÌÏàͬµÄ´ú ......
1¡¢Ê×ÏÈÊÇQT4.6µÄ°²×°£¬²Î¼ûQT4.6+QT Creator1.3°²×°£¨Linux£©
2¡¢ÔٲμûEclipse+Qt4ÅäÖò½Ö裨Linux°æ£©
½«QT4.6µÄ·¾¶£¬È磺
/opt/qtsdk-2009.05/qt/bin/
3¡¢OK£¡
4¡¢¿ÉÒÔͬʱʹÓÃEclipseºÍQT Creator Á½¸öIDEÁË£¬ºÇºÇ¡£ ......