當前位置:(上海辦事處)廈門興銳嘉進出口有限公司>>Philips DCS系統中心>> 內蒙古 Philips PM5515T *供應
泰安市 SIEMENS/MOORE 16169-1-1 優質供應
煙臺市 SIEMENS/MOORE 16201-1-1 *供應
東營市 SIEMENS/MOORE 16201-1-4 *供應
用Philips PM5515T 或g++生成目標文件
如果應用程序包括多個文件,就需要進行分別編譯,zui后用連接器連接起來。如筆者的引導程序包括3個文件:init.s(匯編代碼、初始化硬件) xmrecever.c(通信模塊,采用Xmode協議)和flash.c(Flash擦寫模塊)。 分別用如下命令生成目標文件: arm-linux-gcc-c-O2-o init.o init.s arm-linux-gcc-c-O2-o xmrecever.o xmrecever.c arm-linux-gcc-c-O2-o flash.o flash.c 其中-c命令表示只生成目標代碼,不進行連接;-o 命令指明目標文件的名稱;-O2表示采用二級優化,采用優化后可使生成的代碼更短,運行速度更快。如果項目包含很多文件,則需要編寫makefile文件。關于makefile的內容,請感興趣的讀者參考相關資料。
(3)Philips PM5515T 編寫連接腳本文件
gcc等編譯器內置有缺省的連接腳本。如果采用缺省腳本,則生成的目標代碼需要操作系統才能加載運行。為了能在嵌入式系統上直接運行,需要編寫自己的連接腳本文件。編寫連接腳本,首先要對目標文件的格式有一定了解。GNU編譯器生成的目標文件缺省為elf格式。elf文件由若干段(section)組成,如不特殊指明,由C源程序生成的目標代碼中包含如下段:.text(正文段)包含程序的指令代碼;.data(數據段)包含固定的數據,如常量、字符串;.bss(未初始化數據段)包含未初始化的變量、數組等。C++源程序生成的目標代碼中還包括.fini(析構函數代碼)和.init(構造函數代碼)等。有關elf文件格式,讀者可自行參考相關資料。連接器的任務就是將多個目標文件的.text、.data和.bss等段連接在一起,而連接腳本文件是告訴連接器從什么地址開始放置這些段。例如筆者的引導程序連接文件link.lds為: ENTRY(begin) SECTION { 。=0x00300000; .text : { *(.text) } .data: { *(.data) } .bss: { *(.bss) } }
其中,ENTRY(begin)指明程序的入口點為begin標號;。=0x00300000指明目標代碼的起始地址為0x00300000,這一段地址為MX1的片內RAM;.text : { *(.text) }表示從0x00300000開始放置所有目標文件的代碼段,隨后的.data: { *(.data) }表示數據段從代碼段的末尾開始,再后是.bss段。
(4)Philips PM5515T 用連接器生成zui終目標文件
有了連接腳本文件,如下命令可生成zui終的目標文件: arm-linux-ld-nostadlib-o bootstrap.elf-T link.lds init.o xmrecever.o flash.o 其中,ostadlib表示不連接系統的運行庫,而是直接從begin入口;-o指明目標文件的名稱;-T指明采用的連接腳本文件;zui后是需要連接的目標文件列表。
(5)Philips PM5515T 生成二進制代碼
連接生成的elf文件還不能直接下載執行,通過objcopy工具可生成zui終的二進制文件: arm-linux-objcopy-O binary bootstrap.elf bootstrap.bin 其中-Obinary生成為二進制格式文件。Objcopy還可以生成S格式的文件,只需將參數換成-O srec。如果想將生成的目標代碼反匯編,還可以用objdump工具: arm-linux-objdump-D bootstrap.elf 至此,所生成的目標文件就可以直接寫入Flash中運行了。如果要通過自舉模式下載,還需要轉換為自舉模式的文件格式,相關轉換工具可以在摩托羅拉的上找到。
掌握了GNU工具后,*就可以開發或移植C或C++代碼的程序。用戶可以不需要操作系統,直接開發簡單應用程序。但對于更復雜的應用來說,操作系統*。目前流行的源代碼公開的操作系統如Linux、μC/OS都可以用GNU工具編譯。ARM的Linux已有很多成熟的版本,可以支持 ARM720、ARM920、 ARM1020等多種處理器,讀者可從www.uclinux.org或www.armdevzone.com上獲取信息。Linux移植過程中和處理器相關的代碼都放在arch/arm目錄下。對于內核,用戶需要做的是設定自己系統的內存映像,RAM起始地址,I/O地址空間和虛擬I/O地址空間,參看arch/arm/mach-integrator/arch.c文件。除了內核外,用戶還需要為自己的系統編制各種各樣的驅動程序。
4 調試工具
Philips PM5515T 下的GNU調試工具主要是gdb、gdbserver和kgdb。其中gdb和gdbserver可完成對目標板上Linux下應用程序的遠程調試。gdbserver是一個很小的應用程序,運行于目標板上,可監控被調試進程的運行,并通過串口與上位機上的gdb通信。*可以通過上位機的gdb輸入命令,控制目標板上進程的運行,查看內存和寄存器的內容。gdb5.1.1以后的版本加入了對ARM處理器的支持,在初始化時加入-target==arm參數可直接生成基于ARM平臺的gdbserver。gdb工具可以從ftp://ftp.gnu.org/pub/gnu /gdb/上下載。
對于Philips PM5515T 內核的調試,可以采用kgdb工具,同樣需要通過串口與上位機上的gdb通信,對目標板的Linux內核進行調試。由于篇幅所限,感興趣的讀者可以從http://oss.sgi.com/projects/kgdb/上了解具體的使用方法。
Siemens Simatic S5 WF706 6FM1706-3AB20 6FM1-706-3AB20
Siemens Simatic S5 454 6ES5-454-4UA12 6ES5454-4UA12 NEU
Siemens Simatic Operator Panel OP35 6AV3535-1TA0a1-0?AX0
Siemens Simatic Operator Panel OP35 6AV3535-1TA01-0?AX0
Siemens S7 TP270 6AV6545-0CA10-0?AX0 6AV6-545-0CA10-?0AX0
Siemens Simatic Panel OP25 6AV3525-1EA01-0?AX0
Siemens Simatic Panel OP25 6AV3525-1EA01-0?AX0
Siemens S7 6ES7321-1BL00-0?AA0 6ES7-321-1BL00-?0AA0 NEW
Siemens S7 6ES7322-1BL00-0?AA0 6ES7-322-1BL00-?0AA0 NEW
?
請輸入賬號
請輸入密碼
請輸驗證碼
以上信息由企業自行提供,信息內容的真實性、準確性和合法性由相關企業負責,儀表網對此不承擔任何保證責任。
溫馨提示:為規避購買風險,建議您在購買產品前務必確認供應商資質及產品質量。