T - Engine – Giới thiệu chung

Tài liệu T - Engine – Giới thiệu chung: T-ENGINE – GIỚI THIỆU CHUNG 1 Chương 1 GIỚI THIỆU CHUNG VỀ T-ENGINE 1. Khái quát chung T-Engine là một platform được phát triển mở và chuẩn hoá cho những hệ thống thời gian thực.Nó đóng một vai trò quan trọng trong việc xây dựng những hệ thống tính toán thường gặp,mà thông thường tất cả đều được nhúng với máy tính thông minh và liên kết mạng. T-Engine là sự kết hợp của chuẩn phần cứng (T-Engine board) và hệ điều hành thời gian thực(T-Kernel).T-Engine hổ trợ sự phân phối middleware.Sự sẳn có một phạm vi đầy đủ của các middleware làm giảm bớt thời gian và chi phí để phát triển những ứng dụng hệ thống. T-Engine là kiến trúc tốt cho phát triển việc nhúng phần mềm nhanh chóng và hiệu quả cho các sản phẩm như cell phones và những ứng dụng thông tin.T-Engine hổ trợ eTRON, một kiến trúc bảo mật mạng phát triển dựa trên TRON Project, để đảm bảo những thông tin số sẽ đến an toàn mà không lo bị nghe trộm hay xáo trộn trong khi truyền. 2. T-Engine và thế giới của sự sử ...

pdf100 trang | Chia sẻ: Khủng Long | Lượt xem: 922 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu T - Engine – Giới thiệu chung, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
T-ENGINE – GIỚI THIỆU CHUNG 1 Chương 1 GIỚI THIỆU CHUNG VỀ T-ENGINE 1. Khái quát chung T-Engine là một platform được phát triển mở và chuẩn hoá cho những hệ thống thời gian thực.Nó đóng một vai trò quan trọng trong việc xây dựng những hệ thống tính toán thường gặp,mà thông thường tất cả đều được nhúng với máy tính thông minh và liên kết mạng. T-Engine là sự kết hợp của chuẩn phần cứng (T-Engine board) và hệ điều hành thời gian thực(T-Kernel).T-Engine hổ trợ sự phân phối middleware.Sự sẳn có một phạm vi đầy đủ của các middleware làm giảm bớt thời gian và chi phí để phát triển những ứng dụng hệ thống. T-Engine là kiến trúc tốt cho phát triển việc nhúng phần mềm nhanh chóng và hiệu quả cho các sản phẩm như cell phones và những ứng dụng thông tin.T-Engine hổ trợ eTRON, một kiến trúc bảo mật mạng phát triển dựa trên TRON Project, để đảm bảo những thông tin số sẽ đến an toàn mà không lo bị nghe trộm hay xáo trộn trong khi truyền. 2. T-Engine và thế giới của sự sử dụng máy tính mọi nơi TRON Project có một tác động lớn đến lĩnh vực hệ điều hành thời gian thực,nhúng những sản phẩm như cell phone và hệ thống điều khiển xe hơi.Ngày nay các sản phẩm với khả năng kết nối mạng phát triển một cách mạnh mẽ.Tính phổ biến của những sản phẩm như vậy mang chúng ta đến gần thời đại sử dụng máy tính mọi lúc mọi nơi,tất cả các đối tượng được nhúng vào microchip và liên hệ với nhau qua mạng. Hai yêu cầu quan trọng cần thiết để thực hiện môi trường sử dụng máy tính khắp nơi.Một là tính bảo mật mạng cho người sử dụng.Những hệ thống thông tin di động được kết nối mạng như cell phone,PDA,những hệ thống tính toán để điều khiển từ xa các thiết bị gia dụng từ bên ngoài căn nhà.Những ứng dụng như vậy đòi hỏi mức độ bảo mật cao, bảo vệ tránh rò rỉ thông tin hay nhiểu và chống lại những hành vi trộm cắp.Hai là yêu cầu để đảm bảo phát triển hiệu quả sản phẩm và trong một thời gian ngắn.Trong lĩnh vực hệ thống nhúng,khác với thế giới của máy tính cá nhân,việc sử dụng rộng rải đủ loại kiến trúc CPU và phần cứng là thông thường.Một hệ điều hành thời gian thực và middleware phải được phát triển một cách riêng biệt cho mỗi platform phần cứng.Càng ngày càng có những những yêu cầu mới về chức năng của sản phẩm.Nhưng để thỏa mãn những yêu cầu này lại tốn nhiều thời gian phát triển,chi phí cao và dường như những đòi hỏi về gỡ lỗi là vô tận. Dự án T-Engine được bắt đầu để xây dựng một platform phát triển chung giải quyết những vấn đề trên.Việc bảo mật được gửi bằng cách thực hiện kiến trúc bảo mật eTRON (sự thêm mới TRON Project,thiết lập một platform an toàn với môi trường mạng),và hổ trợ điều này ở phần cứng T-Engine và middleware.Phần cứng T-Engine cung cấp eTRON chip.Những sản phẩm sử dụng eTRON có thể gởi thông tin bảo đảm trên Internet và những mạng mở khác. T-ENGINE – GIỚI THIỆU CHUNG 2 3. Các sản phẩm T-Engine T-Engine cung cấp bốn loại sản phẩm bao phủ phạm vi các thành phần tao nên một môi trường tính toán thường gặp. Hình 1: Dòng T-Engine 4. T-Engine chuẩn Một sản phẩm có độ tương thích cao với người sử dụng,nhắm vào các thiết bị thông tin di động như cellular phone,PDA,DTV,.. • µT-Engine (micro T-Engine) Một sản phẩm giao tiếp đơn giản với người sử dụng chủ yếu dùng cho những thiết bị điều khiển,như những thiết bị điện gia dụng,thiết bị khoa học nghiên cứu ứng dụng. • nT-Engine (nano T-Engine) Một platform dùng cho những thiết bị điện gia dụng nhỏ,các cảm biến kích thước cở một đồng xu. • pT-Engine (pico T-Engine) Paltform cho những thiết bị là thành phần nhỏ nhất trong môi trường tính toán thông thuờng như đèn,công tắc,các cảm biến,van T-ENGINE – GIỚI THIỆU CHUNG 3 5. Phần cứng T-Engine Phần cứng T-Engine chuẩn được xây dựng xung quanh CPU board (75mm x 120mm),có thể kết hợp với một LCD board,board hổ trợ nguồn,board mở rộng và giống với cấu hình phần cứng hệ thống mục tiêu.CPU board của µT-Engine nhỏ hơn (60mm x 85mm).Tiêu chuẩn đặc điểm kĩ thuật được thực hiện theo kích thước của CPU board và những connector bên ngoài của chúng.Chi tiết các đặc điểm kỹ thuật xem bảng bên dưới. Những chip khác nhau có thể được làm cho phù hợp;phần cứng không bị giới hạn bất kì kiến trúc CPU riêng biệt.Một đặc điểm của phần cứng T-Engine là sự thỏa thuận hình thành nhân tố giống với hệ thống mục tiêu. Bảng 1:Các đặc điểm kỹ thuật của Standard T-Engine và μT-Engine 6. Phần mềm T-Engine 6.1 T-Monitor Phần mềm monitor để bắt đầu hệ điều hành và cho debug.Những đặc điểm được định nghĩa và nó tương tác với môi truờng phát triển. T-ENGINE – GIỚI THIỆU CHUNG 4 6.2 T-Kernel Hệ điều hành thời gian thực cho T-Engine. 6.3 Device drivers Source code của các loại device driver được phổ biến để tạo thuận lợi cho việc phát triển các driver cho mỗi ứng dụng hay cho những thiết bị chuyên dụng mới. 6.4 Middleware Nhiều middleware khác nhau chạy trên T-Kernel được tạo sẳn để sử dụng khi cần thiết,cung cấp những chức năng như network protocol stack,file system,xử lý ngôn ngữ,kana-kanji conversion,eTRON –liên quan đến bảo mật phần mềm,graphical user interface(GUI),audio processing,và Java.Tính sẵn có một phạm vi lớn các middleware tạo khả năng phát triển các sản phẩm ứng dụng vững chắc trong một khoảng thời gian ngắn. Để khuyến khích sự phân phối middleware,những thông tin về sử dụng và khả năng kết hợp được quản lý trong cơ sở dữ liệu bởi T-Engine Project và được phổ biến rộng rải.Hệ thống này cung cấp khả năng hổ trợ cho việc phân phối phần mềm sử dụng trên T-Engine.Nó cũng được lập kế hoạch là một phần mềm nạp vào hệ thống,sử dụng eTRON,sẽ được liên kết tới cơ sở dữ liệu này. 7. Môi trường phát triển Để thuận lợi cho việc phát triển phần mềm và phân phối middleware, định dạng mã đối tượng được chuẩn hóa dựa trên GNU. 8. Phần mềm hổ trợ T-Engine Hệ điều hành với tính phức tạp trong khả năng điều khiển,một môi trường Java và những middleware khác,những công cụ phát triển,chức năng hổ trợ debug giữa phần mềm đã được công bố cho T-Engine. T-ENGINE / SH7760 5 Chương 2 T-ENGINE/SH7760 1. Cấu hình hệ thống 1.1. Đặc điểm Chip ngoại vi LSI (PCMCIA controller và sound generator chip) sẵn có trên phương diện thương mại. T-Engine bao gồm PCMCIA controller,sound generator chip,SIM card connector ,..tạo điều kiện thuận lợi để phát triển những ứng dụng của hệ thống. Board T-Engine có hai SH7760 bus (bus dữ liệu và bus địa chỉ ) và khe cắm mở rộng điều khiển tín hiệu output , người sử dụng có thể kết nối các thiết bị đặc biệt. 1.2. Cấu hình T-Engine Hình 1 cho thấy cấu hình hệ thống một T-Engine board và hình 2 là sơ đồ khối của T-Engine Hình 2: Cấu hình hệ thống. T-ENGINE / SH7760 6 Hình 3 : Sơ đồ khối 1.3. Hình dạng T-Engine board bao gồm bốn board:CPU,LCD,debug,và I/O board.Hình 3 cho ta thấy cái nhìn bên ngoài của T-Engine. Hình 4: Hình dạng SH7760 T-Engine. T-ENGINE / SH7760 7 Các hình từ hình 4 đến hình 9 cho ta thấy hình ảnh của các board tương ứng (LCD,CPU , debug,và I/O board). Hình 5: Mặt trước LCD board. Hình 6: Mặt sau LCD board. T-ENGINE / SH7760 8 Lưu ý : kết nối CN15 được sử dụng cho kiểm tra mạch ưu tiên trong xưởng.Không sử dụng Hình 7 : Mặt trước CPU board. Hình 8: Mặt sau CPU board. T-ENGINE / SH7760 9 Hình 9: Debug board. Hình 10: I/O board. T-ENGINE / SH7760 10 1.4. Những đặc điểm kỹ thuật của T-Engine SH7760 Bảng 2: Đặc điểm chức năng của T-Engine. T-ENGINE / SH7760 11 Bảng 3: Đặc điểm nguồn cấp,kích thước,môi trường của T-Engine. Bảng 4: Điện áp T-Engine hổ trợ bên ngoài. 2. Cài đặt 2.1. Kết nối hệ thống Để sử dụng T-minitor,ta sử dụng cáp chuẩn RS-232C nối với connector CN1 của T-Engine với máy tính.Hình 2.1 cho thấy cách thức kết nối với máy chủ và hình 2.2 cho thấy các chân của connector CN1 T-ENGINE / SH7760 12 Hình 11: Kết nối hệ thống. Hình 12:Chân connector nối tiếp CN1. T-ENGINE / SH7760 13 Bảng 5:Các tín hiệu của các chân connector CN1. Lưu ý: (*) :Những chân này chỉ sử dụng để kiểm tra board trong xưởng,không sử dụng chúng với mục đích khác. 2.2. Kết nối Adapter Hình 13:Kết nối adapter. Lưu ý: • Không để các vật nặng lên dây của AC adapter. Để tránh những rủi ro về rỉ điện,lửa,hay sốc điện,không gây hại dây của AC adapter. T-ENGINE / SH7760 14 • Để tránh những nguy hại về sốc điện,không rút dây cắm khi tay ướt,không kéo dây.. 2.3. Mở ,tắt T-Engine board Để mở hay tắt T-Engine nhấn công tắc SW1 trên CPU board. Để mở T-Engine nhấn và giữ công tắc trong 0.5 giây hay hơn. Để tắt nhấn và giữ công tắc ít nhất 2 giây. 2.4. Kết nối debug board Kết nối debug board ở khe mở rộng CN2 trên T-Engine board. Hình 14: Kết nối debug board. Lưu ý: Tắt nguồn T-Engine trước khi nối debug board hay tháo EPROM.Khi gắn lại EPROM kiểm tra chiều kết nối như hình 2.5 Hình 15 : Kết nối EPROM T-ENGINE / SH7760 15 ™ Chi tiết hơn về các đặc điểm kỹ thuật của T-Engine SH7760 có thể tham khảo tài liệu: SH7760 T-Engine Development Kit – User’s Manual T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 16 Chương 3 CÔNG CỤ PHÁT TRIỂN T-ENGINE/SH7760 1. Cấu trúc phần mềm 1.1. Các loại phần mềm được phát triển Phần mềm được phát triển có thể phân biệt làm ba loại,căn cứ vào những khác biệt trong cách thức phát triển, định dạng đối tượng chương trình và những yếu tố khác. • Phần mềm Monitor-based (Monitor-based software) Phần mềm Monitor-based chạy trong môi trường non-MMU,có nghĩa là tất cả các tài nguyên phần cứng có thể được sử dụng loại trừ chúng đang được sử dụng bởi monitor. Monitor sử dụng một vùng 8KB RAM từ 0x8c000000 đến 0x8c001FFF,các chương trình phải được liên kết đến địa chỉ nằm ngoài vùng này. Sau khi một chương trình được tạo,nó được chuyển sang định dạng S,tải vào trong bộ nhớ bằng lệnh Load và chạy bằng lệnh Go của T-Monitor. Phần mềm không sử dụng các chức năng của T-Kernel,chạy trực tiếp trên phần cứng. Khi một chương trình được load vào trong bộ nhớ,nó có thể được lưu vào trong đĩa làm việc bằng lệnh WriteDisk trên T-Monitor,và tải lại vào bộ nhớ sử dụng lệnh ReadDisk. • Phần mềm T-Kernel-based Một device driver hay phần mềm T-Kernel-based khác chạy trên môi trường sử dụng MMU,như là một chương trình thường trú trong không gian bộ nhớ hệ thống. Không gian hệ thống là không gian địa chỉ bộ nhớ từ 0x40000000 đến 0x7fffffff. Sau khi sử dụng lệnh recv của CLI để lưu chương trình như là một file trên đĩa làm việc,chương trình được tải và chạy sử dụng lệnh lodspg của CLI hay IMS.Khi một chương trình chạy hoàn tất,nó vẫn tiếp tục chiếm cứ vùng bộ nhớ.Bộ nhớ phải được giải phóng bằng lệnh unlspg. Khi một chương trình được tải,việc tái định vị thực hiện tự động.Địa chỉ thực sự chương trình được tải được hiển thị bởi lệnh lodspg,và có thể được xác nhận bằng lệnh ref spg của CLI • Phần mềm Process-based Phần mềm chạy trong bộ nhớ ảo như là một T-Kernel Extension process,và không thể trực tiếp sử dụng các hàm của T-Kernel.Nó bao gồm các phần mềm ứng dụng thông thường như là middleware ( các thư viện) ,.v.v. Phần mềm Process-based chạynhư một ứng dụng thông thường trong một môi trường sử dụng MMU,và được tải vào trong không gian bộ nhớ cục bộ. Không gian cục bộ là vùng địa chỉ bộ nhớ được đánh địa chỉ từ 0x00000000 đến 0x10000000. Sau khi sử dụng lệnh recv của CLI để lưu chương trình thành một file trong đĩa làm việc,chương trình được tải và chạy sử dụng lệnh chạy chương trình của CLI hay IMS. Phần mềm Process-based chạy ở mức người sử dụng mức bảo vệ và do đó không thể sử dụng trực tiếp các hàm của T-Kernel,và cũng không thể truy cập trực tiếp không gian I/O. T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 17 1.2. Các file hệ thống Rom trong bộ nhớ flash chứa các file sau: PBOOT Chương trình boot chính (trong khối boot) SBOOT Chương trình boot phụ KERNEL.SYS OS kernel (T-Kernel, Extension, một vài driver) SYSCONF File cấu hình hệ thống (EUC text) DEVCONF File cấu hình thiết bị (EUC text) STARTUP.CMD Lệnh khởi động hệ thống (EUC text) STARTUP.CLI Lệnh khởi động CLI (EUC text) chgsys Thay đổi hệ thống đĩa screen Screen driver kbpd KB/PD driver lowkbpd KB/PD mức thấp I/O driver rsdrv RS driver unixemu UNIX (file) emulator scrtst Màn hình hiển thị chương trình ví dụ cli CLI (Command Line Interpreter) .xcli CLI command file (EUC text) bin/ hdpart Tiện ích phân vùng đĩa đơn giản format Định dạng đĩa dd Công cụ dump đĩa ed Trình soạn thảo đơn giản expf Công cụ nén và giải nén cmp Công cụ so sánh file devlist Liệt kê thiết bị msconv Công cụ chuyển file đơn giản usbinf Công cụ hiển thị thông tin thiết bị USB cardinf Công cụ hiển thị thông tin PC-Card devconf Công cụ chỉnh sửa DEVCONF sysconf Công cụ chỉnh sửa SYSCONF debugmode Công cụ chỉnh sửa DEBUGMODE 1.3. Qui trình boot hệ thống Qui trình bên dưới được sử dụng để khởi động hệ thống. (1) Monitor tải và chạy khối boot trên đĩa khởi động.Khối boot chứa đựng chương trình boot chính (PBOOT). (2) PBOOT tìm file hệ thống cho chương trình boot phụ (SBOOT),tải nó vào trong bộ nhớ và chạy nó. (3) SBOOT tải vào trong bộ nhớ những file hệ thống sau,và chạy KERNEL.SYS. KERNEL.SYS OS kernel (T-Kernel, Extension, drivers) SYSCONF File cấu hình hệ thống DEVCONF File cấu hình thiết bị (4) KERNEL.SYS khởi động hệ thống dựa trên các thông số trong file SYSCONF,sau đó chạy T-Kernel và T-Kernel Extension.Nó cũng khởi động các driver sau.Những T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 18 driver này được bao gồm trong KERNEL.SYS,khi chúng được yêu cầu khởi động hệ thống sau đó. PC Card manager, USB manager, Clock (RTC), Console (serial), System disk (5) Sau khi hệ điều hành khởi động hoàn tất.IMS được bắt đầu như là task đầu tiên,file STARTUP.CMD được đọc,và việc sử lý được xây dựng dựa trên nội dung của nó. (6) STARTUP.CMD khởi động các thiết bị khác,và cuối cùng chạy CLI. 2. Các thủ tục phát triển phần mềm 2.1. Tạo đĩa làm việc Các phần mềm không thể chứa trong ROM của flash memory do đó cần phải tạo đĩa làm việc trước tiên để lưu trử các phần mềm phát triển. Các thiết bị sau có thể được sử dụng như đĩa ghi: • ATA card,hay CF card + PC-Card adapter Tên thiết bị : pca • USB Tên thiết bị : uda Để những đĩa này có thể sử dụng được cần phải phân vùng và format bằng các thủ tục cơ bản của CLI [/SYS]% hdpart pca (or uda) uda [C:249 H:4 S:16 B:16000 (7 MB)] No System Boot StartCHS EndCHS SecNo SecCnt MB 1 01 DOS 00 0: 1: 1 249: 3:16 16 15984 7 2 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 3 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 4 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 ** Create/Delete/Boot/Edit/Quit ? c Create PartNo (1-4) ? 1 Size [MB] (<8MB) ? No System Boot StartCHS End CHS SecNo SecCnt MB 1 13 BTRON 00 0: 1: 1 249: 3:16 16 15984 7 2 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 3 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 4 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 ** Create/Delete/Boot/Edit/Update/Quit ? b Boot PartNo (1-4) ? 1 No System Boot StartCHS End CHS SecNo SecCnt MB 1 13 BTRON 80 0: 1: 1 249: 3:16 16 15984 d7 2 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 3 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 4 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 ** Create/Delete/Boot/Edit/Update/Quit ? u ** uda: Updated Master Boot Block [/SYS]% format pca0 WORK Format pca0 [STD] WORK T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 19 Logical Formatting... Disk Format Success. ™ Lựa chọn –x trong lệnh format khi kích thước vùng chia lớn hơn hay bằng 2 GB. [/SYS] % format –x pca0 WORK Sau khi format hoàn tất sử dụng các lệnh sau của CLI để có thể truy cập đĩa: [/SYS] % att pca0 A [/SYS] % cd /A 2.2. Tạo đĩa boot Việc tạo đĩa boot cũng tương tự như như tạo đĩa làm việc. Nếu đĩa boot được tạo là PC-Card hay USB cắm vào T-Engine,thứ tự boot của hệ thống tùy thuộc vào cách thiết lập SW-1 và SW-3 Bảng 6:Các chế độ qui định thứ tự boot của hệ thống ™ Nếu boot từ USB,hệ thống sẽ boot từ ROM trước,sau đó hệ thống đĩa đượcchuyển từ ROM sang USB.Do đó những file sau trong USB không sử dụng Lưu ý rằng chúng không ảnh hưởng đến việc boot của hệ thống. PBOOT,SBOOT,KERNEL.SYS,SYSCONF,DEVCONF,STARTUP.CMD, chgsys. ™ Nếu DIP SW-3 được bật,hệ thống sẽ kiểm tra thiết bị USB.Nếu USB không được gắn việc boot sẽ tốn thời gian.Nếu hệ thống không cần boot từ USB DIP SW-3 nên tắt. Các bước tạo đĩa boot: • Chia vùng boot sử dụng tiện ích hpart. • Trong lệnh format,chỉ định –b để yêu cầu ghi chương trình boot.Chỉ định lựa chọn – x nếu vùng chia có kích thước lớn hơn hay bằng 2 GB. [/SYS] % format –b [-x] pca0 SYSTEM • Copy các chương trình từ ROM sang đĩa boot [/SYS] % att pca0 /A [/SYS] % cp –b –v –r * /A 2.3 Cập nhật đĩa ROM ROM có thể được cập nhật lại bằng cách ghi lại toàn bộ nội dung của đĩa boot tạo trên PC card qua ROM theo những thủ tục sau: (1) Tạo đĩa boot trên PC card với kích thước lớn nhất của ROM (8064 KB) hay nhỏ hơn.Nội dung được ghi lên ROM với những file cập nhật trên PC-Card. Đảm bảo hệ thống có thể boot từ đĩa. (2) Bật DIP SW-1 lên,boot hệ thống và bắt đầu T-Monitor. Nhấn nút reset SW-2 với ấn nút SW-3 cũng có thể làm T-Monitor boot. (3) Thực hiện lệnh WriteRda (WRDA) ,pca0 là thiết bị đĩa boot của PC-Card TM> WriteRda pca0 (4) Nội dung của đĩa boot trên PC-Card được đọc và ghi lên ROM trênflash memory Sau khi cập nhật ROM,khởi động lại hệ thống. T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 20 3. Initial Monitor System(IMS) 3.1. Tổng quan IMS là một chương trình chạy như là một task khởi tạo T-Kernel,xậy dựng các hàm sau: - Tham khảo,thao tác các trạng thái của T-Kernel bằng lệnh. - Load và unload các chương trình hệ thống (subsystems) - Thực thi chương trình hệ thống (processes). - Thực thi command file. - Tự động thực thi khởi tạo hệ thống bắt đầu lệnh STARTUP.CMD Khi console sẵn sàng để nhập lệnh,dấu nhắc có thể được thể hiện bằng nhấn: [IMS] % Những lệnh sau đó được chấp nhận và thực thi. • Những dòng bắt đầu với ‘* ‘ được bỏ qua như những chỉ dẫn. • Các lệnh bao gồm vài thành phần được truyền như là những đối số số hay những đối số chuỗi. • Chuỗi kí tự nhập được bao trong “ “. • Các hằng số được nhập: - Chuỗi số hexa (0-9,A-F) bắt đầu bởi H’ hay 0x. - Chuỗi số thập phân (0 – 9) bắt đầu bởi D’. - Chuỗi số octal ( 0-7) bắt đầu bởi Q’. - Chuỗi số nhị phân (0,1) bắt đầu bởi B’. • Các toán tử + - * / có thể được sử dụng với những giá trị số để cộng ,trừ,nhân chia các toán hạng.Trong phép nhân và chia,phần phân số thập phân bị cắt đi. Tất cả các toán tử đều có quyền ưu tiên ngang nhau và được thực thi từ trái sang phải.Ví dụ -8/2 = - 2,và 1 + 2 * 3 = 9. 3.2. Các lệnh của IMS h Command help Định dạng: h [ ] Đặc tả: Trình bày các chỉ dẫn về lệnh được chỉ định. Nếu không có thông số được chỉ định.Một danh sách các lệnh sẽ được liệt kê. ? Command help Định dạng: ? [ ] Đặc tả: Tương tự như lệnh h. prompt Set prompt T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 21 Định dạng : prompt “chuỗi kí tự”. Đặc tả: Thiết lập “chuỗi kí tự” như là dấu nhắc.Chiều dài tối đa của “chuỗi kí tự” là 32 kí tự. radix Set radix Định dạng: radix [ { H | D | O } ] Đặc tả: Lập cơ số sử dụng cho phần tử số,như H ( hexadecimal), D (decimal),hay O (octal).Nếu không có thông số được chỉ định,cơ số thiết lập hiện hành được sử dụng. sleep Sleep Định dạng: sleep [ ] Đặc tả: Đặt IMS vào trạng thái WAIT.Trạng thái WAIT được thoát bằng cách nhấn CTRL + G .Nếu một khoảng thời gian được chỉ định,trạng thái WAIT sẽ thoát khi khoảng thời gian đó trôi qua. ref_tsk Get task state Định dạng: ref_tsk [ ] Đặc tả : Trình bày những thông tin bên dưới cho task được chỉ ra bởi task ID.Nếu không có thông số được chỉ định thông tin được thể hiện là cho tất cả các task. TID Task ID PRI:BPR Quyền ưu tiên hiện thời,quyền ưu tiên cơ bản. SLT Time silce WUP Số của các yêu cầu wakeup. SUS Số của các yêu cầu suppend. STS Trạng thái task (nếu là trạng thái WAIT,đối tượng là nguyên nhân của wait cũng được trình bày). ST + UT System uptime,user uptime RID Resource ID EXINF/NAME Thông tin mở rộng. ref_sem Get semaphore state Định dạng: ref_sem [ ] Đặc tả: Trình bày những thông tin bên dưới của semaphore được chỉ định bởi semaphore ID.Nếu không có thông số chỉ rõ,thông tin được trình bày cho tất cả các semaphore. ID Semaphore ID WID ID của waiting task tại đầu của queue (0 nếu không có waiting task). CNT semaphore count hiện hành. EXINF Thông tin mở rộng. T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 22 ref_flg Get event flag state Định dạng: ref_flg [ ] Đặc tả: Trình bày các thông tin bên dưới của cờ sự kiện được chỉ đinh bởi event flag ID.Nếu không có thông số được chỉ định,thông tin của tất cả các cờ sự kiện được trình bày. ID Even flag ID WID ID của waiting task tại đầu của queue(0 nếu không có waiting task). PTN Mẫu cờ hiện hành. EXINF Thông tin mở rộng. ref_mbx Get mailbox state Định dạng: ref_mbx [ ] Đặc tả: Trình bày những thông tin bên dưới của mailbox chỉ định bởi mailbox ID.Nếu không có thông số được chỉ định,thông tin tất cả các mailbox được trình bày. ID Mailbox ID WID ID của waiting task tại đầu của queue(0 nếu không có waiting task). MSG Địa chỉ của message đầu tiêne(0 nếu klhông có message). EXINF Thông tin mở rộng. ref_mtx Get mutex state Định dạng: ref_mtx [ ] Đặc tả: Trình bày những thông tin bên dưới của mutex được chỉ định bởi mutex ID.Nếu không có thông số được chỉ định,thông tin của tất cả các mutex được trình bày. ID Mutex ID. HID ID của locked task(0 nếu không locked). WID ID của waiting task tại đầu queue (0 nếu không có waiting task). EXINF Thông tin mở rộng. ref_mbf Get message buffer state Định dạng: ref_mbf [ ] Đặc tả: Trình bày các thông tin bên dưới của message buffer được chỉ định bởi message buffer ID.Nếu không có thông số được chỉ định,thông tin của tất cả các message buffer được trình bày. ID Message buffer ID WID ID của waiting task tại đầu queue nhận(0 nếu không nhận waiting task). SID ID của waiting task tại đầu queue gởi(0 nếu không gởi waiting task). MSBSZ Kích thước của message đầu tiên(0 nếu không có message). FREE Kích thước free buffer. MAX Kích thước tối đa của message được chỉ định khi message buffer được tạo. EXINF Thông tin mở rộng. T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 23 ref_por Get rendezvous port state Định dạng : ref_por [ ] Đặc tả : Trình bày các thông tin bên dưới của rendezvous port được chỉ định bởi rendezvous port ID.Nếu không có thông số được chỉ định,thông tin của tất cả các rendezvous port được trình bày. ID Rendezvous port ID WID ID của task tại đầu của queue đợi được gọi(0 nếu không có task được được gọi). AID ID của task tại đầu của queue đợi được chấp nhận (0 nếu không có có task đợi được chấp nhận). MAXCSZ Kích thước tối đa call message được chỉ định khi rendezvous port được tạo. MAXRSZ Kích thước tối đa return message được chỉ định khi rendezvous port được tạo. EXINF Thông tin mở rộng. ref_mpl Get variable-size memory pool state Định dạng: ref_mpl [ ] Đặc tả: Trình bày những thông tin bên dưới của variable-size memory pool được chỉ định bởi variable-size memory pool ID.Nếu không có thông số chỉ định,thông tin của tất cả các variable- size memory pool được trình bày. ID Variable-size memory pool ID WID ID của waiting task ở đầu của queue (0nếu không có waiting task). FREE Tổng số kích thước của các vùng trống. MAX Kích thước lớn nhất của vùng trống. EXINF Thông tin mở rộng. ref_mpf Get fixed-size memory pool state Định dạng : ref_mpf [ ] Đặc tả: Trình bày thông tin bên dưới của fixed-size memory pool được chỉ định bởi fixed-size memory pool ID.Nếu không có thông số được chỉ định,thông tin của tất cả các fixed-size memory pool được hiển thị. ID Fixed-size memory pool ID WID ID của waiting task tại đầu queue (0 nếu không có waiting task) FREE Số các khối trống. EXINF Thông tin mở rộng. T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 24 ref_cyc Get cyclic handler state Định dạng: ref_cyc [ ] Đặc tả: Trình bày các thông tin bên dưới của cyclic handler được chỉ định bởi cyclic handler ID.Nếu không có thông số được chỉ định,thông tin của tất cả các cyclic handler được hiển thị. ID Cyclic handler ID STS Trạng thái cyclic handler (STA = started) TIME Thời gian còn lại trước khi handler kế được bắt đầu. EXINF Thông tin mở rộng. ref_alm Get alarm handler state Định dạng: ref_alm [ ] Đặc tả : Trình bày thông tin bên dưới của alarm handler được chỉ định bởi alarm handler ID.Nếu không có thông số,thông tin của tất cả các alarm handler được trình bày. ID ID của alarm handler STS Trạng thái của alarm handler (STA = started) TIME Thời gian còn lại trước khi handler được bắt đầu. EXINF Thông tin mở rộng get_reg Get task register Định dạng: get_reg [ ] Đặc tả: Trình bày nội dung thanh ghi task cho task được chỉ định bởi task ID sta_tsk Start task Định dạng: sta_tsk [ , ] Đặc tả: Bắt đầu task được chỉ định bởi task ID. Một task không ở trạng thái DORMANT không thể được bắt đầu. ter_tsk Terminal task Định dạng: ter_tsk [ ] Đặc tả : Kết thúc task được chỉ định bởi task ID. del_tsk Delete task Định dạng : del_tsk [ ] Đặc tả : Xóa task được chỉ định bởi task ID Một task không ở trong trạng thái DORMANT không thể bị xóa. T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 25 rel_wai Release task WAIT state Định dạng : rel_wai [ ] Đặc tả : Thoát khỏi trạng thái WAIT của các taks được chỉ định bởi taks ID. Trạng thái WAIT không thể được giải thoát nếu task không ở tronh trạng thái WAIT. wup_ tsk Wake up task Định dạng : wup_tsk Đặc tả : Đánh thức (wake up) task được chỉ định bởi task ID. Nếu tk_slp_tsk không được thực thi cho task và nó không ở trạng thái WAIT ,yêu cầu wakeup được xếp hàng. can_wup Cancel task wakeup request Định dạng : can_wup Đặc tả : Từ chối yêu cầu wakeup cho task được chỉ định bởi task ID.Tất cả các yêu cầu wakeup cho task đều bị từ chối. sus_tsk Suspend task Định dạng : sus_tsk Đặc tả : Đặt task được chỉ định bởi task ID vào trạng thái treo (SUPPENDED). rsm_tsk Resume task Định dạng : rsm_tsk Đặc tả : Giải thoát trạng thái SUPPENDED của task được chỉ định bởi taks ID.Nếu một yêu cầu suppend được ẩn,một yêu cầu được xóa. frsm_tsk Forcibly resume task Định dạng : frsm_tsk Đặc tả :Giải thoát trạng thái suppend của task được chỉ định bởi task ID. Tất cảc các yêu cầu suppend ẩn được xóa. chg_pri Set task priority T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 26 Định dạng : chg_pri , Đặc tả : thiết lập quyền ưu tiên cho task được chỉ định bởi task ID. rot_rdq Rotate task ready queue Định dạng : rot_rdq Đặc tả : Xoay vòng quyền ưu tiên của task với quyền ưu tiên được chỉ định. sig_sem Return semaphore resource Định dạng : sig_sem , Đặc tả:Tăng một lượng được chỉ định số đếm semaphore của semaphore xác định bởi semaphore ID. clr_flg Clear event flag Định dạng : clr_flg , Đặc tả : Xóa cờ sự kiện được chỉ định bởi event flag ID. set_flg Set event flag Định dạng : set_flg , Đặc tả: Thiết lập cờ sự kiện được chỉ định bởi event flag ID dựa trên sự xác định tập mẫu . set_pow Set low-power mode Định dạng: set_pow Đặc tả: Thiết lập chế độ năng lượng mức thấp như sau: 1 Đặt vào trạng thái SUPPENDED. 2 Không cho phép lựa chọn chế độ năng lượng mức thấp. 3 Cho phép lựa chọn chế độ năng lượng mức thấp. exit Exit system Định dạng: exit [ ] Đặc tả: Shut down hệ thống như chỉ dẫn. Không có thông số Shutdown (Power Off) -1 Khởi tạo startup ( Reset ) -2 Fast startup (Warm Reboot) -3 Restart (Normal Reboot) T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 27 lodspg Load kernel extended module Định dạng: lodspg Đặc tả: Tải và ghi file được chỉ định như là một module mở rộng.File phải được định vị trực tiếp dưới thư mục /SYS. unlspg Unload kernel extended module Định dạng : unlspg Đặc tả : Unload module mở rộng được chỉ định bởi load ID của nó. $ Run command file Định dạng: $ [ echo ] Đặc tả :Chạy command file được chỉ định.Thông số argument chỉ định command echo back. Command file phải được định vị trực tiếp bên dưới thư mục /SYS. $ Start process Định dạng: $ ... [ ! ] [ & ] Đặc tả: Tải file có thể thực thi được chỉ định và tạo một process ! có thể được sử dụng để chỉ định quyền ưu tiên thực thi. & chỉ định việc thực thi tại nền (background ). Chỉ định $$ hơn $ tạo một process hệ thống. File có thể thực thi phải được định vị trực tiếp dưới thư mục /SYS. # T-Monitor interface Định dạng: # [ ] Đặc tả: Chạy lệnh T-Monitor được chỉ định bởi thông số. Nếu không có thông số được chỉ định,quyền điều khiển chuyển sang cho T-Monitor.Lệnh T-Monitor G trả quyền điều khiển cho IMS. T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 28 4. Command Line Interpreter (CLI) 4.1 Tổng quan CLI là môt chương trình chạy như là một process của hệ thống,có những hàm sau: • Xây dựng file và những tác vụ khác bằng lệnh. • Tải và dơ bỏ các chương trình hệ thống (subsystems). • Chạy các chương trình ứng dụng • Thực thi những file lệnh. • Định dạng lệnh và được đánh cách ra bởi một hay hai khoảng trắng. Một dòng có thể có hai hay nhiều lệnh đánh cách bởi ‘;’.Dòng bắt đầu với ‘*’ được bỏ qua như chỉ dẫn. • Định dạng phần tử số Khi những số được truyền như là các thông số,chúng được nhập như sau. Số thập phân: Chuỗi các kí số thập phân (0-9) (không bắt đầu bằng 0). Số hexa: Chuỗi các số hexa bắt đầu bởi 0x (0-9,A-F). Số bát phân(Octal): Chuỗi các số bát phân bắt đầu bằng 0 (0-7). • Định dạng phần tử tên đường dẫn Tên đường dẫn tuyệt đối /[/].. Tên đường dẫn tương đối [/].. ‘%’ trong tên file được bỏ qua,và kí tự kế tiếp là được tính. ‘*’ trong tên file được mở rộng như là một wild card Một tên đường dẫn tương đối chỉ ra tên đường dẫn bắt đầu từ active file.Các kí tự đặc biệt theo sau có thể được sử dụng như . .. Parent file trên tên đường dẫn tuyệt đối của active file. . Bản thân active file. trong tên đường dẫn tuyệt đối chỉ định disk root file. SYS hard disk (system disk) hda0 hard disk (unit 0 partition 0) fda floppy disk (drive 0) • Ghi chú được sử dụng để mô tả các thông số: [ ] chỉ định sự lưa chọn. a | b a hay b được chỉ định một hay nhiều thành phần có thể được chỉ định # thông số số tùy chọn #.#.# chuỗi các thông số số tùy ý(dãy các số phân cách bởi “.”). T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 29 4.2. CLI Command Reference att Attach disk Định dạng: att [-r] [-k] [-S] [-s] Tùy chọn: -r gán ở chế độ chỉ đọc (read-only) -k Làm trực tiếp sử dụng att_fls() (trong môi trường không chạy quản lý đối tượng thực/ảo). -S Gán ở chế độ SYNC (chỉ hợp lệ nếu –k được chỉ định) -s chế độ im lặng (silent mode) (không có message thể hiện) Đặc tả: Gán thiết bị được chỉ định bởi device name như là một file hệ thống. Lệnh này không thể sử dụng từ một tiện ích của console. Nếu hệ thống được chạy thông thường,thiết bị được gán tự động với tên được gán sau. System disk: SYS đĩa cứng/đĩa mềm. Non-system disk: fda đĩa mềm,hda0 đĩa cứng (unit 0 partition 0) hda1 đĩa cứng (unit 0 partition 1). det Detach disk Định dạng: det [-e] [-k] [-s] Tùy chọn: -e tháo thiết bị -k Trực tiếp sử dụng det_fls() (trong môi trường không chạy quản lý đối tượng thực ảo). -s Silent mode (không có message thể hiện). Đặc tả: Gỡ file hệ thống. Lệnh này không thể sử dụng từ tiện ích console. eject Eject disk Định dạng: eject [tên thiết bị] Tùy chọn: Không. Đặc tả: Tháo thiết bị và gở file hệ thống nếu được gắn.Nếu không có tên thết bị được chỉ định,fda được sử dụng mặc định. Lệnh này không thể được sử dụng từ tiện ích console. cd Change active file T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 30 Định dạng: cd [ ] Tùy chọn : Không. Đặc tả: Thiết lập active file hay thể hiện nó nếu không có thông số được chỉ định. Tên đường dẫn “ / ” nghĩa là active file không tồn tại (rỗng). ls List files Định dạng: ls [-f] [-F] [-l | -t] [ ] Tùy chọn: -f Trình bày thông tin cho phần tử file trên . -F Gắn và cá kí tự sau vào file name khi trình bày “ / ” khi liên kết record được bao gộp “ # “ khi có nhiều tham khảo. -l Trình bày chi tiết file ATYPE Loại ứng dụng ( thuộc cơ số 16) ATR Thuộc tính H: đối tượng ảo ẩn P: bảo vệ. R: chỉ đọc 1: thuộc tính ứng dụng 1 2: thuộc tính ứng dụng 2 NREC Số của những record và các record liên kết. NREF Số các tham khảo. SIZE Kích thước file. BLK Kích thước khối. MTIME Cập nhật ngày và thời gian cuối cùng. NAME Tên file -t Trình bày thông tin ngày và thời gian của file CTIME tạo ngày và thời gian file ATIME Ngày và thời gian truy cập cuối cùng MTIME Cập nhật ngày và thời gian cuối cùng NAME Tên file. Đặc tả: Liệt kê file trực tiếp dưới file được chỉ định bởi .Nếu bị bỏ sót ,active file được khôi phục. Nếu file ở trên đĩa khác và đĩa đó không được gắn,hay nếu –F được chỉ định,tên file được bắt đầu bởi “ * ” .Nếu –l hay –t được chỉ định,@ được trình bày. fs List file records Định dạng: fs [-l] [ ] Tùy chọn: T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 31 -l liệt kê chi tiết. Đặc tả: Cấu trúc record của file được chỉ định bởi được trình bày dưới định dạng sau.Nếu bị bỏ lỡ,active file được khôi phục. Data record: NO: TYPE STYPE: SIZE Link record: NO: 0 STYPE: NAME Link record (khi –l được chỉ định): NO: 0 STYPE: NAME NO Record number (0 và theo sau) TYPE Record type STYPE Record subtype ( thuộc cơ số 16) SIZE Record size NAME Link record tham khảo file name FID Liên kết record file ID ATR1—ATR5 Liên kết record liên kết các thuộc tính 1-5 (thuộc cơ số 16) Khi record liên kết tham khảo file ở trên một đĩa khác ,” * “được bắtđầu bằng file name. mkf Make file Định dạng: mkf [-t#] Tùy chọn: -t# Loại ứng dựng của file được tạo.(mặc định là không) Đặc tả: Tạo một file mới cp Copy file Định dạng: cp [-b] [-r] [-v] . . Tùy chọn: -b Sử dụng những khối đĩa liên tục cho vùng ghi -r copy tất cả các file dưới copy có thể không cho phép nếu file được lồng quá sâu. -v Hiện được copy. Đặc tả: Copy file được chỉ định bởi đến mà không đặt tên lại. rcp Copy and rename file Định dạng: rcp [-b] [-r] Tùy chọn: -b Sử dụng những khối đĩa liên tục cho vùng ghi -r copy tất cả các file dưới copy có thể không cho phép nếu file được đặt quá sâu. T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 32 Đặc tả: Copy file được chỉ định bởi đến Nếu một file đã tồn tại,nó sẽ được overwritten (Những record cũ sẽ được xóa hết và những record ở được copy ở vị trí này). • Nếu –r không được chỉ định,file liên kết trực tiếp dưới được copy lại.Nếu file trên đĩa khác,lỗi được trả lại. • Nếu –r được chỉ định và những file trực tiếp dưới trên đĩa khác, chỉ có những liên kết được copy và chính những file này không được copy. • Khi được tạo mới,những thuộc tính file không được copy. • Khi “ = “ được thiết lập như tên file,file cha trở thành đích copy. Ví dụ: rcp A /fda/= .. A được copy đến /fda. ln Create link Định dạng : ln [-p#] [-a#.#.#.#.#] . . Tùy chọn: -p# Liên kết record điểm nhập ( từ 0) (mặc định:gắn vào cuối) -a#1.#2.#3.#4.#5 Thiết lập các thuộc tính liên kết từ 1 đến 5 (mặc định: tất cả 0) Ví dụ : -a0x8000.1.2.3.4 Đặc tả: Thêm file liên kết đến rm Remove file Định dạng: rm [-i] [-r] [-u] [-v] [-f] [-F] . . Tùy định: -i Xác nhận sự xóa;xóa nếu “ y ”,không xóa nếu khác “ y ” được nhấn. -r Xóa tất cả các file dưới -u Chỉ xóa liên kết ,không xóa file thật -v Hiện được xóa -f Bỏ qua lỗi cảnh báo nếu không tồn tại. -F Xóa những file mà cấm xóa mà không cảnh báo lỗi. Nếu -r không được chỉ định và không có file nào ở ,lỗi được trả về. Đặc tả: Xóa những file chỉ định bởi . Nếu một file đang được tham khảo bởi một process khác,chỉ có liên kết được xóa,không xóa file thật. empf Empty file contents Định dạng: empf Tùy chọn : Không Đặc tả: T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 33 Xóa tất cả các record trong những file dưới ,làm chúng trở thành những file rỗng.Nếu file chứa liên kết,sự xóa lồng xảy ra. • Lệnh này hổ trợ những mạng phức tạp và tham khảo vòng. sync Synchronize disks Định dạng: sync Tùy chọn: Không Đặc tả: Ghi vào đĩa nội dung catche của tất cả các file hệ thống được attach ren Rename file Định dạng: ren Tùy chọn: Không. Đặc tả: Đặt lại tên file được chỉ định bởi đến apd Appended file record Định dạng: apd [-p#|-d#.#][-r#.#][-t#.#] [] Tùy chọn: -d#1.#2 #1:Bắt đầu record number (từ 0) cho việc xóa (Mặc định: không xóa). #2:Số record xóa (1 hay hơn ) (Mặc định : 1) -p # điểm nhập record number (từ 0) (Mặc định:Gắn vào cuối). -r#1.#2 #1:Bắt đầu record number ( từ 0) cho copy #2:Số những record copy ( 1 hay hơn) (Mặc định : là 1) -t#1.#2 #1:Loại record sau khi copy (1 hay hơn) (Mặc định: loại record cũ) #2:Record subtype sau khi copy. Đặc tả: Nhập hay thêm vào những file record trong file . • Khi –d được chỉ định,những record được nhập tại vị trí xóa (tương tự -p ). • Nếu chỉ -d được chỉ định, có thể bỏ (xóa tất cả các record). Ví dụ : apd –d3.2 –r2 –t8.0 AAA BBB File AAA record 3 và 4 được xóa,và nơi để file BBB record 2 được thêm vào như loại 8,kiểu phụ 0. Để tham khảo: các loại record 0 Link record 1 TAD main record 2 TAD comment record 3 TAD auxiliary record 4 (reserved) 5 Setting tag record T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 34 6 Specification tag record 7 Functional tag record 8 Executable functional tag record 9 Executable program record 10 Databox record 11 Font data record 12 Lexicographic data record 13 (reserved) 14 (reserved) 15 System data record 16–31 Application records chdef Change default access mode Định dạng : chdef [-o#] [-g#] [-p#] [-n#] Tùy chọn: -o# Thiết lập mode truy cập owner (các số 0-7 ở dạng nhị phân) 0100: R quyền truy cập (0 :Không , 1:Được) 0010: W quyền truy cập (0 :Không , 1:Được) 0001: E quyền truy cập (0 :Không , 1:Được) -g# Thiết lập mode truy cập group -p# Thiết lập mode truy cập general 0x0*00 : R mức truy cập (0 - F) 0x00*0 : W mức truy cập (0 - F) 0x000* : E mức truy cập (0 - F) -n# Thiết lập file owner group (các số 0 -4 ,0 = không owner group ) Đặc tả: Hiện/thiết lập các mode truy cập mặc định.Nếu không có tùy chọn được chỉ định ,mode truy cập hiện hành được chỉ định. chmod Change file access mode Định dạng: chmod [-o#] [-g#] [-p#] [-n#] [-a#] . . . Tùy chọn: -o# Thiết lập mode truy cập owner (các số 0-7 ở dạng nhị phân) 0100: R quyền truy cập (0 :Không , 1:Được) 0010: W quyền truy cập (0 :Không , 1:Được) 0001: E quyền truy cập (0 :Không , 1:Được) -g# Thiết lập mode truy cập group -p# Thiết lập mode truy cập general 0x0*00 : R mức truy cập (0 - F) 0x00*0 : W mức truy cập (0 - F) 0x000* : E mức truy cập (0 - F) -n# Thiết lập file owner group (các số 0 -4 ,0 = không owner group ) -a# Thiết lập thuộc tính file truy cập ( các số 1-4) 1: Thiết lập thuộc tính bảo vệ ghi. 2: Thiết lập lại thuộc tính bảo vệ ghi T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 35 3: Lập thuộc tính không thể xóa 4: Lập lại thuộc tính không thể xóa Đặc tả: Thay đổi mode truy cập file/Lập thuộc tính truy cập.Nếu không có tùy chọn được chỉ định,mode truy cập / Thiết lập thuộc tính truy cập hiện hành được trình bày. chtime Change file time Định dạng: chtime [-l#.#.#.#.#.#] [-a#.#.#.#.#.#] [-m#.#.#.#.#.#] ... Tùy chọn: -l#1.#2.#3.#4.#5.#6 Lập giới hạn save file -a#1.#2.#3.#4.#5.#6 Lập thời gian truy cập file cuối cùng -m#1.#2.#3.#4.#5.#6 Lập thời gian truy cập file cuối cùng #1: Năm (lịch phương tây,2 số cuối) #2: Tháng #3: Ngày #4: Giờ #5: Phút #6: Giây Đặc tả: Thiết lập thời gian file. touch Update file time Định dạng: touch . . . Tùy chọn: Không Đặc tả: Lập ngày và giờ cập nhật file cuối cùng và truy cập cuối cùng đến thời gian hiện thời .Nếu file không tồn tại,nó sẽ được tạo mới. tp Show the file content Định dạng: tp [-p#][-r#][-e][-a|-x|-b] Tùy chọn: -p# Hiện số dòng được chỉ định,sau đó hiển thị: more(y/n)? Tiếp hiển thị nếu phím [Y] được nhấn,hay bỏ nếu nhấn phím khác.Số dòng được đếm bởi new-line marker,vì vậy có thể khác với số dòng hiển thị trên màn hình -r# Chỉ định số record (mặc định 0) -e Biến đổi phần cuối -a Hiển thị như ASCII/EUC text -x hexadecimal dump (kích thước half-word) -b hexadecimal dump (kích thước byte) Đặc tả: Hiển thị nội dung của file được chỉ định bởi . T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 36 • Nhấn phím ESC để bỏ qua nội dung file hiển thị.Nhấn bất kì phím khác luân phiên pauses và resume sự hiển thị.Có thể có một vài delay giữa nhấn một phím và kết thúc thất sự sự hiển thị. df Show disk status Định dạng: df Tùy chọn: Không Đặc tả: Hiển thị trạng thái tất cả các disk được gắn. PATH Tên đường dẫn đĩa DEV Tên thiết bị (hda0,fda) TOTAL Tổng kích thước(KB) FREE Kích thước vùng trống (KB) USED Phần trăM sử dụng (%) UNIT Kích thước khối đĩa (KB) MAXFILE Số tối đa của các file NAME tên đĩa date Show/set date Định dạng: date [ ] Tùy chọn: Không Đặc tả: Hiển thị (nếu không có thông số) hay thiết lập ngày và giờ hiện hành 85-99,00-53 1-12 1-31 0-23 0-59 0-59 • Nếu một giá trị không phải số được lập hay sự thiết lập bị bỏ qua,phần tử đó sẽ không đổi. Ví dụ: date 02 6 1 12 23 40 Lập ngày 1/6/2002 và thời gian 12:23:40 date , , , , 11 0 Lập thời gian 11 phút 00 giây (ngày vẫn như cũ). apreg Register application Định dạng: apreg [-t] Tùy chọn : -t Ghi trong menu “Utility” Đặc tả: T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 37 Ghi fie được chỉ định bởi như là một chương trình ứng dụng trên đĩa nơi mà file ở đó.Một file được ghi phải có cấu hình như sau: • Loại file ứng dụng có thể thực thi được (MSB = 1) • Record khởi tạo phải là một record chương trình có thể thực thi được (loại 9). • File phải chứa đựng ít nhất một functional tag record (loại 7) • Khi một file được ghi,một liên kết được tạo đến “//$$ PROGRAM.BOX” và số của đường dẫn ứng dụng tham khảo được tăng 1. • Nếu file được ghi trên menu Utility “/SYS/USR/in tools” hay “/<disk attach name>/in tools” được thêm vào tag record trong apdel Delete application Định dạng: apdel [-f] Tùy định : -f Bỏ qua cảnh báo lỗi khi tên đường dẫn không tồn tại Đặc tả: Xóa ứng dụng ghi của file được chỉ định bởi .Nếu nó được ghi trên menu Utility,việc ghi này cũng được xóa • Khi việc ghi được xóa,liên kết đến “//$$ PROGRAM.BOX” được xóa,nếu không có tham khảo đến ,bản thân file sẽ bị xóa. apcnv Convert application file Định dạng: apcnv [-a|-t] Tùy chọn : -t Tiện ích (Utility) (mặc định) -a Ứng dụng khác (word processor/database type) Đặc tả: Chuyển đổi file ứng dụng được chỉ định bởi đến file được chỉ ra ở .Một là một file gồm có một TAD record có thể truyền được bởi sự giao tiếp phần mềm .Nó thể ghi như một tiện ích bằng cách kéo nó đến version thể hiện window dưới cấu hình hệ thống. ps Show process state Định dạng: ps [-t][-l] [ []] Tùy chọn: -t Hiện thông tin trạng thái task -l Hiện thông tin liên kết(LINK) tại thời điểm tạo process. Đặc tả: Hiển thị thông tin về process với số process từ đến <ending process number> • Nếu không được chỉ định,bắt đầu từ process 1 • Nếu không được chỉ định,tiếp tục đến <starting process number> + 999 T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 38 PID Process number STAT Trạng thái process (W: WAIT, R: READY, *: RUN) PRI Độ ưu tiên PPID Parent process number TIME Elapsed time (CPU usage time) MEM Memory in use/memory required (KB) POUT Page-out number NAME Tên đường dẫn process TSKID Task ID FID File ID ATR1-5 Thuộ tính liên kết FSNAME Tên file hệ thống msg Send message Định dạng : msg [..] Tùy chọn : Không Đặc tả: Gởi một message đến process được chỉ định bởi : 1 đến 31 : Word-size data kill Kill process Định dạng: kill [-r] Tùy chọn : -r Giết tất cả các process con của process được chỉ định. Đặc tả: Giết những process bởi • Các process của hệ thống không thể bị giết recv Load file Định dạng: recv [-d] [-c] . . . Tùy chọn: -d Nếu một file cùng tên đã tồn tại,xóa file cũ. Nếu –d không được chỉ định,nếu có file cùng tên tồn tại,lỗi được trả về -c Tự động xóa Ctrl –Z cuối cùng. Đặc tả: Tải một host file được chỉ định bởi trên giao diện RS (XMODEM),Lưu lại nó trong thư mục active file mà không đặt tên lại File tạo có những thuộc tính cố định: Loại ứng dụng 0 Loại record 31 Loại subrecord 0 T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 39 prerr Print error Định dạng: prerr Tùy chọn: Không Đặc tả: Trình bày loại lỗi được chỉ định bởi path Show/set command path Định dạng: path [ . . .] Tùy chọn : Không Đặc tả : Hiện (nếu không có thông số được chỉ định) hay thiết lập file ở nơi lệnh được định Một file lệnh là bất kì một file nào có chứa lệnh thực thi từ CLI.File có thể thực thi có thể tìm và thực thi để đầu tiên active file sau đó command file. Lên đến 8 command file có thể thiết lập Thiếp lập * như là nghĩa là dãy command file hiện hành. Ví dụ nếu đường dẫn /SYS/bin được thiết lập,sau đó “/SYS/bin/MyCmd” có thể được thực thi đơn giản bằng cách nhấn “MyCmd”. Thông thường /SYS/bin được thiết lập. hist Show command history Định dạng : hist Tùy chọn: Không Đặc tả: Lên đến 100 dòng lệnh đã thực thi trước đó được hiển thị trong một danh sách được đánh số. Một dòng lệnh được hiển thị bằng lệnh này có thể được gọi lại bằng bất kì cách nào sau và thực thi lại ! Gọi lại dòng lệnh thực thi cuối cùng ! Gọi lại dòng lệnh được chỉ định bởi ! Gọi lại dòng lệnh được thực thi gần đây nhất bắt đầu với một chuỗi được chỉ định trong . echo Echo string Định dạng: echo T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 40 Tùy chọn: Không Đặc tả: Hiển thị . exhox Echo items Định dạng: echo . . . Tùy chọn: Không Đặc tả: Hiển thị một chuỗi các phần tử . . . Lệnh này khác với echo ở chổ một kí tự “ * “ bên trong một được sử lý như là một wild card. alias Make alias Định dạng: alias [ [] ] Tùy chọn : Không Đặc tả: Ghi như là một alias của “ \ “ trong được bỏ qua.Để bao gồm “ ; “ trong một chuỗi ,nó phải được viết thành “ \ ; “. “ & “ trong được thay thế bằng một biến array. Khi một lệnh bắt đầu với “ \ “, alias được truyền không được hình thành. Ví dụ : alias LS ls –l LS aa bb trở thành ls –l aa bb alias CD cd &\;cd CD aa trở thành cd aa ; cd \CD aa trở thành CD aa unalias Delete alias Định dạng: unalias . . . Tùy chọn : Không Đặc tả: Xóa alias được ghi cho . ver Show OS version information Định dạng: ver T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 41 Tùy chọn : Không Đặc tả: Hiển thị thông tinh version của hệ điều hành. restart Show/set restart designation Định dạng: restart [] Tùy chọn: Không Đặc tả: HIển thị (nếu không có biến được chỉ định) hay thiết lập trạng thái restart. < 0 Shut down (power off) = 99 Bắt đầu khởi tạo (Reset) = 98 Khởi động lại nhanh (Warm reboot) = 97 Khởi động lại ( Normal reboot) • Trạng thái khởi động lại được thiết lập trong tên toàn cục “_ _ RESTART_TIME_ _” trace Set command trace Định dạng: trace [on | off] Tùy chọn : Không Đặc tả: Thiết lập được hay không các dòng command file được hiển thị khi một command file được thực thi. On: Hiển thị Off: Không hiển thị Kể cả khi on được thiết lập,các dòng command file bắt đầu với “ @ “không hiển thị. if Conditional command Định dạng : if Dòng lệnh thực thi khi đúng [else] Dòng lệnh thực thi khi sai endif Tùy chọn : Không Đặc tả: : [ ] T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 42 : ==(=) != (không bằng) > < >=(lớn hơn hay bằng) <= (nhỏ hơn hay bằng) & !& : ? Sự thồn tại của tên đường dẫn (1/0) &DBG Debug mode (1/0) &FSR mode sửa đĩa (1/0) &ERR Lỗi xảy ra trước (1/0) &CLI mode bắt đầu CLI (0: công cụ console ,1:CLI,-1: -e lựa chọn) &RMD Running mode &SW1 to SW4 Trạng thái của DIPSW 1 đến 4 (1/0) (độc lập phần cứng) # [-] Thoát thực thi code Những phần tử sau có thể được sử dụng cho sự tương thích,nhưng không được đề nghị S1 to S4 Trạng thái của DIPSW1 đến 4(1/0) D0 mode không debug (1/0) D1 debug mode (1/0) E0,E1 Lỗi diễn ra trước (1/0) E1 xóa lỗi record (tương tự clrerr) • Chú ý và phải đánh cách bởi 1 hay hơn 1 khoảng trắng • Khi được bỏ qua , !=0 được khôi phục. Ví dụ: if &DBG == 0 .Thực thi không ở debug mode else .Thực thi ở debug mode endif if testXX <0 .Thực thi khi “testXX” thoát code < 0 endif pagesz Show/set display page size Định dạng: pagesz [] Tùy chọn : Không Đặc tả: Hiển thị/thiết lập số dòng trên mỗi trang hiển thị. Nếu không có biến được chỉ định ,kích thước trang hiên hành được hiển thị Khi kích thước trang được thiết lập là 0 dòng,sự hiển thị là liên tục (không có dừng lại tại mỗi trang) • Khi một sự hiển thị liên tục hoàn thành số dòng thiết lập tại mỗi trang, .more( y/n )? được hiển thị.Nhấn [Y] hiển thị trang kế;các phím khác để kết thúc. cleanup Delete junk files T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 43 Định dạng: cleanup [-i] [-v] Tùy chọn: -i Xác nhận sự xóa;xóa nếu “y”,không xóa nếu kí tự khác được nhấn. c bỏ qua sử lý. -v Hiển thị tên của junk file bị xóa Đặc tả: Xóa những junk file trong file hệ thống được chỉ định bởi ref Get/set system state Định dạng: ref [] Tùy chọn: Không Đặc tả: Hiển thị / thiết lập thông tin tài nguyên hệ điều hành được chỉ định bởi (sử dụng cho debug) . []: tsk sem flg mbx mbf rdv mtx Thông tin cách sử dụng tài nguyên Core kernel mpl mpf cyc alm reg tid Task register ID mem Thông tin cách sử dụng bộ nhớ mtb pid thông tin bảng quản lý bộ nhớ pid > 0: bộ nhớ cục bộ pid = 0: bộ nhớ hệ thống pid = 1: bộ nhớ DMA spc [pid start end] Thông tin không gian địa chỉ process Thông tin cách sử dụng page frame pfm [flg] 0xHLUFN H: Hash L: Lock U: Use F: Free N: Uninit 1: disk-map 2: page-file 4: other map Thông tin map pgf Thông tin page file (PAGEMEM) seg Thông tin quản lý segent spg Thông tin mở rộng OS (KEREXT) pld [01]— Thiết lập Running program reload btm [o [a]] Boot mode (btm = btm & a | o) rmd Run mode Boot mode/run mode value bit 0: 1 if debug mode bit 1: 1 if disk repair mode dbg [01]— Nhảy đến BMS on exception lgm [msk] OS kernel log mask setting (0-0xff) T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 44 ? Command help Định dạng: ? [* | . .] Tùy chọn: Không Đặc tả: Hiển thị thông tin chỉ dẫn. Khi không có biến được chỉ định, Hiển thị danh sách các lệnh Khi * được chỉ định, Hiển thị tất các các chi tiết chỉ dẫn. Khi được chỉ định, Hiển thị chi tiết những chỉ dẫn của Sau mỗi lệnh, ..more (y/n)? được hiển thị.Nhấn [Y] để tiếp tục,phím khác để bỏ qua hiển thị chỉ dẫn. Run file Định dạng: . .[&] Tùy chọn: & Chạy như một background process Đặc tả: Chay file được chỉ định bởi Khi file record khởi tạo là một đối tượng record thực thi được: Chạy file chỉ định bởi như là một process .Dãy được truyền cho process để chạy Khi file bao gồm một TDA record hay record loại 31: Xét như một command file,thực thi kí tự code trong TDA record (bỏ qua tag) hay chuỗi EUC (record loại 31) trong dãy. Những chuỗi sau trong command file được thay thế bằng các biến tương ứng của chúng % %: 0 là ,1 và theo sau là . Command file ẩn lên đến 50 mức,chỉ định ” & “ được bỏ qua. Khi CLI được chạy,file “/SYS/.xcli” được chạy tự động như là command file và được sử dụng để khởi tạo.Tuy nhiên nếu một command file được chỉ định như là một biến tại CLI startup,command file đó được thực thi. cli .xcli được chạy cli STARTUP. CLI STARTUP.CLI được chạy debug Get/Set debug mode Định dạng: T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 45 debug [debug mode] debug [ .. [&] Tùy chọn: Không Đặc tả: Lấy/thiết lập debug mode,hay bắt đầu chương trình debug. Debug mode 0 = mode thông thường 1 = debug mode Khi debug mode không được chỉ định,mode hiện hành thiết lập được hiển thị Khi được chỉ định,debugging của file đó bắt đầu. Lệnh này không thể sử dụng một mình,phải được sử dụng cùng với host debugger setdbg Get/set debug mode of designated process Định dạng: setdbg [debug mode] Tùy định: Không Đặc tả: Lấy / thiết lập debug mode của process được chỉ định Debug mode 0 = normal mode 1 = debug mode Khi debug mode không được chỉ định,mode hiện hành đang thiết lập được hiển thị Lệnh này không thể sừ dụng một mình,phải sử dụng cùng với host debugger. lodspg Load system program Định dạng: lodspg Tùy chọn: Không Đặc tả: Tải một chương trình hệ thống. Thông điệp sau được hiển thị khi chương trình tải thông thường. LODSPG file [id] top – end file Tên file của chương trình hệ thống được tải. id ID chương trình hệ thống top Địa chỉ ban đầu nơi được tải end Địa chỉ cuối nơi được load unlspg Unload system program Định dạng: unlspg Tùy chọn: Không Đặc tả: Unload một chương trình hệ thống. T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 46 exit Exit CLI Định dạng: exit [exit code] Tùy chọn : Không Đặc tả: Thoát CLI Mã thoát chỉ hợp lệ khi khi CLI bắt đầu với lựa chọn –e. sleep Sleep Định dạng : sleep Tùy chọn: Không Đặc tả: Đợi khoảng thời gian được chỉ định (Mặc định: 10) Ví dụ: sleep 1000 beep Beep Định dạng: beep [ ] Tùy chọn: Không Đặc tả: Phát ra tiếng kêu bíp bíp tần số được chỉ định trong khoảng được chỉ định.Nếu các biến được bỏ qua,giá trị mặc định được sử dụng Chỉ định một tần số hay nhỏ hơn 10 sẽ không phát ra tiếng kêu. Ví dụ : beep 800 100 input Input character string Định dạng: input [] Tùy chọn: Không Đặc tả: Sau khi hiển thị dấu nháy trên console,thiết lập chuỗi kí tự được nhập từ console như là giá trị của một biến được chỉ định bởi (từ 0).Biến là một trong một command file và có thể được tham khảo bởi %N Ví dụ: Nhập 2 xxxxxxxxxx (Y or N ) if # %2 == # Y goto OK endif Lệnh này có thể chỉ được sử dụng trong một command file T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 47 setpar Set parameter Định dạng: setpar . . . Tùy chọn: Không Đặc tả: Thiết lập trong biến được chỉ định bởi parameter number (từ 0).Biến là một trong một command file và có thể tham khảo bởi %N. Chuỗi kí tự ! . . . Chuỗi số trình bày mã thoát của . . chạy như là chương trình bên ngoài Chuỗi kí tự được nối với nhau thành + Chuỗi kí tự nhận được bằng cách cộng như là giá trị số - Chuỗi kí tự nhận được bằng cách trừ như là giá trị số * Chuỗi kí tự nhận được bằng cách nhân như là giá trị số / Chuỗi kí tự nhận được bằng cách chia như là giá trị số : Một phần của từ của chuỗi kí tự Ví dụ: setpar 3 0 label Loop setpar 3 %3 +1 if %3 >= 10 goto LoopEnd endif goto Loop label LoopEnd Những lệnh này có thể chỉ được sử dụng trong command file. label Define label Định dạng: label Tùy chọn : Không Đặc tả: Định nghĩa một label (bất ký một kí tự nào) cho việc nhảy bởi lệnh goto Ví dụ : label loopl • Lệnh này chỉ có thể được sử dụng trong một command file • Một nhãn là chỉ hợp lệ bên trong command file tương tự goto T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 48 Jump Định dạng: goto Tùy chọn : Không Đặc tả: Nhảy đến nhãn được chỉ định bởi nhãn lệnh Ví dụ : goto loop1 Lệnh này chỉ được sử dụng trong một command file. goerr Eror jump Định dạng: goerr [] Tùy chọn : Không Đặc tả: Nếu một lỗi diễn ra trước hay trong một subsequent command,nhảy đến nhãn được chỉ định và hủy bỏ hàm này. Nếu không có nhãn được chỉ định,dừng hàm này. Ví dụ : goerr ErrExit Lệnh này chỉ có thể sử dụng trong command files clrerr Clear error record Định dạng: clrerr Tùy định: Không Đặc tả: Xóa bỏ các lỗi được ghi cũ T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 49 5. Các tiện ích 5.1. hdpart - Simple Disk Partitioning Utility Định dạng: format phy_devnm Tùy chọn : Không Các tham số: phy_devnm Tên thiết bị vật lý pca PC Card uda thiết bị lưu trữ USB Đặc tả: Tạo hay xóa partition trong một thiết bị đĩa 5.2. format - Disk Formatting Utility Định dạng: format [-v|-s][-b][-e][-p][-l#][-f#][-lb#][-x] devnm fsnm Các tham số: -v Verbose mode (hiển thị thông điệp chi tiết) -s Silent mode (không thể hiện thông điệp) -e Tháo đĩa sau khi định dạng (chỉ nếu chức năg tháo tự động) -p Xây dựng định dạng vật lý -b Thiết lập khối boot -l# Truy cập mức điều khiển(mặc định :0) -f# File lớn nhất(mặc định: xác định bằng khả năng đĩa) -x Định dạng BTRON -N Chỉ cập nhật boot block devnm Tên thiết bị fsnm Tên file hệ thống Đặc tả: Xây dựng định dạng vật lý và luận lý của một thiết bị đĩa. Ví dụ: [/SYS]% fomat -p -l1 -b -v fla TEST Nếu thiết bị chưa được định dạng vật lý,định dạng vật lý được xây dựng kể cả khi không có chỉ định lựa chọn –p. Truy cập mức điều khiển có thể được chỉ định giữa 0 và 2,nhưng ẩn tên không được hổ trợ.(Phần tên ẩn được điền đầy bằng 0.) Xem chỉ dẫn BTRON3 trong mức điều khiển và đặc điểm tên ẩn. 5.3. cmp – File Comparison Định dạng: cmp path_1 path_2 Tùy chọn : Không Các đối số: path_1 file so sánh 1 path_2 file so sánh 2 Đặc tả: So sánh nội dung của hai file để xem xét chúng kết hợp như thế nào. Loại record,kiểu phụ,và dữ liệu record được so sánh.Nếu có nhiều record được so sánh tất cả đều được so sánh. T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 50 5.4. dd - Disk Dump Định dạng: dd dev_name [ej] Các thông số: Dev_name Tên thiết bị ej Hoàn thành tháo đĩa Đặc tả: Thực hiện dump hay sửa đổi đĩa,định dạng tương tác.Khi đĩa drive được truy cập trực tiếp hơn là một file,một lỗi trong việc sữa đổi có thể trả lại những file không thể đọc hay vì những vấn đề khác. (Ví dụ sử dụng) [/SYS]% dd fda > fda: Blocksize = 512, Blockcount = 2880 EJ > Cylinder = 80, Head = 2, Sector = 18 > Block ? 1 <-- Designate physical block number > Dump(offs len) ? 0 32 <-- dump range 000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > Dump(offs len) ? <-- End dump with line feed only > Modify(offs) ? 16 <-- Designate modify location 10: 00 ? 0x10 <-- Enter value to change 11: 00 ? 0x11 12: 00 ? . <-- End value entry with . > Modify(offs) ? <-- End modification with line feed only > Block 1 Modified > Block ? <-- End with line feed only [/SYS/WORK]% 5.5. ed – Simple Line Editor Định dạng: ed [-a] [-s] path [cmd_path + cmd ..] – Tùy chọn : -a file được soạn thảo là EUC nếu không được chỉ địh nó là mã TRON -s Silent mode (không có message hiển thị) Các thông số: Path File được soạn thảo Cmd_path File soạn thảo chứa các lệnh (mã TRON) + cmd .. Thiết kế các lệnh được soạn thảo trực tiếp Đặc tả: Đây là trình soạn thảo văn bản đơn giản sử dụng trong sử lý bó.Mặc dù các tác vụ tương tác là có thể,cơ bản là sử dụng cho soạn thảo command file hay đặc tả sử lý bó. Các lệnh soạn thảo: i* thêm chuỗi * vào trước dòng hiện hành. f* Tìm và nhảy đến dòng bên dưới dòng hiện hành chứa đựng chuỗi string. d# Xóa # dòng từ dòng hiện hành (1 dònd nếu # không được chỉ định ) +# Dời dòng hiện hành xuống # dòng (# không thể bị bỏ qua) -# Dời dòng hiện hành lên # dòng (# không thể bị bỏ qua) p# Hiển thị # dòng từ dòng hiện hành (1 dòng nếu # không được chỉ định) e Lưa sự thay đổi và thoát T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 51 q Thoát mà không lưu h Liệt kê các lệnh soạn thảo 5.6. expf – Compressed archive expansion tool Định dạng: expf [-v] [-s] [-r] arch_file [dst_path] Tùy chọn: -v Verbose mode (hiển thị chi tiết thông điệp) -s Silent mode (không có message được hiển thị) -r Thay thế file tồn tại bằng một file mở rộng Các thông số: arch_file File lưu trữ dst_path Thư mục để mở rộng file. Đặc tả:Mở rộng (extract) file từ một file lưu trữ(archive file). 5.7. devlist – Device list Định dạng: devlist Đặc tả: Hiển thị danh sách của các device driver được ghi 5.8. usbinf – USB device information display tool Định dạng: usbinf [device #] Các thông số: Device # số của thiết bị USB Đặc tả: Hiển thị thông tin của thiết bị USB được kết nối. thiết bị # được đặt,hiển thị đặc tả của thiết bị được chỉ định. 5.9. cardinf – PC card information display tool Định dạng: cardinf Đặc tả: Hiển thị thông tin của các PC card được kết nối. 5.10. msconv – Simple file conversion tool Định dạng: mscnv [ -m[dev] | -c[dev] ] [ l | d | o[t|T|a] | i[t|T|a] ] file ... Tùy chọn: -m[dev] Thiết bị với file hệ thống MS-DOS (FAT) -c[dev] Thiết bị với file hệ thống CD-ROM(ISO9660) dev là tên thiết bị của file hệ thống đích (ví dụ pca0,uda0,..)Nếu không có tùy chọn –mpca0 được sử dụng mặc định. Các thông số: l [dir] Liệt kê các file d Xóa các file o[t|T|a] file Lấy file i[t|T|a] file Đặt file T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 52 t: SJIS – TC (Big Endian) Chuyển mã kí tự T: SJIS – TC (Little Endian) Chuyển mã kí tự a: SJIS – ASCII/EUC Chuyển mã kí tự Đặc tả: Đặt và lấy các file giữa file hệ thống BTRON và file hệ thống MS-DOS(FAT) hay CD- ROM(ISO9660) • mscnv sử dụng UNIX emulator.Do đó nó có thể chạy trong điều kiện UNIX emulator đang chạy • Các kí tự bao gộp mã ASCII,như là các kí tự chữ và số,được xử lý như kí tự haft-width (ASCII) kể cả nếu nò được nhập như là các kí tự full-width trong tên file và tên thư mục.Vì vậy một file có cái tên chứa đựng các kí tự chữ và số full-width không thể chuyển đổi. • Kí tự không thể chuyển đổi thành bất kì kí tự EUC nào được hiển thị “ “. • Bất kì file nào cũng không thể ghi trên file hệ thống CD-ROM Liệt kê các file mscnv [opt] l [dir] Liệt kê các fie trong thư mục được chỉ định bởi dir.Nếu dir không được chỉ định,mscnv liệt kê các file trong thư mục root. Ví dụ: [/SYS]% mscnv –mpcal 1 D1/SUB1 1: [04] . 4096 03/07/29 18:27:36 2: [04] .. 4096 03/07/29 18:26:58 3: [08] SAMPLE.TXT 6703 03/07/30 09:07:48 | | | | | | | +--> Thời điểm thay đổi cuối cùng | | +--> Kích thước file | +--> Tên file +--> Loại file Các loại file (Xem getdents() trong UNIX Emulator) 04 Thư mục 08 File 00 Không biết Xóa các file mscnv [opt] d file .. Đặc tả:Xóa những file được chỉ định bởi file.file có thể chứa nhiều hơn một file Ví dụ: [/SYS]% mscnv -mpca1 d D1/SUB1/SAMPLE.TXT Lấy file mscnv [opt] o[t|T|a] file .. Lấy những file được chỉ định trong file.file có thể chứa đựng hơn một file Tên đường dẫn của file hay là tên thư mục của nó là tên file trong file hệ thống BTRON. Các file được lấy lưu trong thư mục hiện hành Ví dụ: DIR/FILE file nguồn DIR/FILE File đích FILE mscnv không overwrite một file tồn tại,nhưng tạo một file mới Những file được lấy lưu trong record có loại là 31 Một trong những lựa chọn này là nguyên nhân mscnv chuyển mã kí tự.Nếu không có lựa chọn được chỉ định nó sẽ không chuyển đổi mã kí tự. t: Chuyển đổi từ Shift – JIS thành mã TRON (Big endian) T: Chuyển đổi từ Shift – JIS thành mã TRON (Little endian) a: Chuyển đổi từ Shift – JIS thành EUC T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 53 Ví dụ: [/SYS]% mscnv -mpca1 oa D1/SUB1/NOTE.TXT .. DOS -> BTRON: NOTE.TXT Đặt file mscnv [opt] i [t|T|a] file .. Đặt những file trong file được chỉ định vào trong file.file có thể chứa nhiều hơn một file Tên đường dẫn của file trong thư mục hiện hành được chỉ định trong file.Chỉ có record đầu tiên được đặt. Ví dụ: DIR/FILE file nguồn FILE file đích DIR/FILE mscnv overwrite một file tồn tại Một trong những lựa chọn này dẫn đến mscnv chuyển đổi mã kí tự.Nếu không có tùy chọn nó sẽ không chuyển đổi mã. t: Chuyển từ TRON Code (Big endian) sang Shift-JIS T: Chuyển từ TRON Code (Little endian) sang Shift-JIS a: Chuyển từ EUC sang Shift-JIS Ví dụ: [/SYS]% mscnv -mpca1 i D1/SUB1/SAMPLE.TXT .. DOS <- BTRON: SAMPLE.TXT Ghi chú: Rất là thuận lợi nếu định nghĩa các alias sau trong CLI.Những alias này có thể được mô tả trong .xcli để chúng được định nghĩa tự động alias mls mscnv -muda0 l alias mget mscnv -muda0 o alias mgeta mscnv -muda0 oa alias mput mscnv -muda0 i alias mputa mscnv -muda0 ia alias mrm mscnv -muda0 d 5.11. devconf – DEVCONF modification tool Định dạng: devconf [/att_name] item [new_value | @] Các thông số: att_name Tên đĩa gắn nơi mà DEVCONF tồn tại (SYS được mặc định) item Tên phần tử trong DEVCONF new_val Giá trị thiết lập mới nhất của phần tử trong DEVCONF Xóa phần tử trong DEVCONF Đặc tả: Một command file trong CLI sửa đổi nội dung trong DEVCONF.Nó sử dụng ed bên trong.Nếu new_val không được đưa ra,devconf hiển thị giá trị hiện hành.Nếu nó đưa như là một biến,phần tử được chỉ định được xóa khỏi devconf. 5.12. sysconf – SYSCONF modification tool Định dạng: sysconf [/att_name] item [new_value | @ ] T-ENGINE / SH7760 – CÔNG CỤ PHÁT TRIỂN 54 Các thông số : att_name Tên đĩa được gắn nơi mà SYSCONF tồn tại (SYS là mặc định) item Tên phần tử trong SYSCONF new_val Giá trị được thiết lập mới nhất của phần tử trong SYSCONF Xóa phần tử trong SYSCONF Đặc tả: Một command file trong CLI sửa đổi nội dung của SYSCONF.Nó sử dụng ed bên trong.Nếu new_val không được đưa,sysconf hiển thị giá trị hiện hành.Nếu nó được đưa như một biến,phần tử được chỉ định được xóa khỏi sysconf. 5.13. debugmode – DEBUGMODE set tool Định dạng : debugmode [0 | 1] Đặc tả: Một command file trong CLI sửa đổi giá trị củ DEBUGMODE trong SYSCONF.Nó sử dụng ed bên trong.Nếu không có biến được chỉ định, debugmode hiển thị giá trị hiện hành.Sự thiết lập lên và sau lần boot kế tới. T-MONITOR 55 Chương 4 MÔI TRƯỜNG PHÁT TRIỂN GNU 1. Tổng quan Công cụ phát triển GNU cho một Linux host: gcc version 3.0.4 binutils version 2.11.2 gdb version 5.2 Những công cụ này dùng chạy trên Red Hat Linux 7.1. Những công cụ phát triển GNU: Những công cụ thông thường cho Linux te.Linux-i686.common.04.tar.gz Hổ trợ sh cho Linux te.Linux-i686.sh.04.tar.gz Tài nguyên T-Kernel te.resource.sh7760.tar.gz Trong tài nguyên T-Kernel là các file header cho T-Kernel và T-Kernel Extension,các thư viện,Makefile,các device driver,các ví dụ,tiện ích và các file source code.Những gói nguồn cần thiết để cấu hình môt trường phát triển GNU bao gồm: gcc-3.0.4 gcc-3.0.4.tar.bz2 binutils-2.11.2 binutils-2.11.2.tar.bz2 gdb-5.2 gdb-5.2.tar.gz gcc-3.0.4 patch for sh-linux gcc-sh-linux 3.0.4-0.diff.gz binutils-2.11.2 patch for sh-linux binutils-sh-linux 2.11.2-6.diff.gz Những công cụ GNU cấu hình te.tlsrc.common.03.tar.gz môi trường (phần thông thường) Những công cụ GNU cấu hình te.tlsrc.sh.04.tar.gz Môi trường cho sh Những gói nguồn này chỉ cần thiết khi xây dựng lại môi trường phát triển GNU. Thông thường chúng không sử dụng.Môi trường phát triển GNU xây dựng bằng chúng bao gộp trong te.Linux-i686.sh.04.tar.gz. 2. Cài đặt môi trường phát triển GNU • Tạo thư mục cài đặt % mkdir /usr/local/te • Giải nén tất cả các GNU package vào thư mục /usr/local/te Copy các file sau từ CDROM vào thư mục /usr/local/te: te.resource.sh7760.tar.gz te.Linux-i686.common.04.tar.gz te.Linux-i686.sh.tar.gz T-MONITOR 56 Giải nén những file này % cd /usr/local/te % tar zxpf te.resource.sh7760.tar.gz % tar zxpf te.Linux-i686.common.04.tar.gz % tar zxpf te.Linux-i686.sh.04.tar.gz • Những công cụ sau là cần thiết cho việc sử dụng môi trường phát triển GNU,không cần thiết phải cùng version. GNU make version 3.78.1 perl version 5.005.03 Đường thực thi của perl phải là /usr/local/bin/perl.Nếu không tìm thấy perl trong /usr/local/bin cần phải tạo link từ perl tới /usr/local/bin. % cd/usr/local/bin; ln –s /usr/bin/perl % cd/usr/bin;ln –s make gmake • Cấp quyền giao tiếp cho cổng COM1 % chmod 666 /dev/ttyS0 3. Cập nhật lại các biến môi trường Sau khi cài đặt các công cụ phát triển cần phải cập nhật lại các biến môi trường cho phù hợp với môi trưòng hệ thống.Giá trị mặc định của thư mục cơ sở này là /usr/local/te Nếu công cụ phát triển được cài đặt trong /usr/local/te,trùng với thư mục mặc định thì các biến môi trường như BD,GNUs,GNU_BD,GNUsh,GCC_EXEC_PREFIX không cần cập nhật lại. Nếu các công cụ phát triển được cài đặt trong thư mục khác /usr/local/te các biến môi trường phải được cập nhật lại - Sử dụng csh % sentenv BD = /usr/local/te % sentenv GNUs = /usr % sentenv GNU_BD= $BD/tool/Linux-i686 % sentenv GNUsh =$GNU_BD/sh-unknown-tkeernel % sentenv GCC_EXEC_PREFIX= $GNU_BD/lib/gcc-lib/ Những cập nhật trên có thể thực hiện trong .cshrc. - Sử dụng bash % export BD= /usr/local/te % export GNUs =/usr % export GNU_BD= $BD/tool/Linux-i686 % export GNUsh =$GNU_BD/sh-unknown-tkeernel % export GCC_EXEC_PREFIX =$GNU_BD/lib/gcc-lib/ Những cập nhật trên có thể thực hiện trong .bashrc. T-MONITOR 57 4. Sử dụng GDB 4.1. Chuẩn bị Việc sử dụng GDB trong môi trường phát triển T-Engine được mô tả như sau. GDB sử dụng các hàm của T-Monitor như là mục tiêu,mục tiêu chuyển điều khiển cho T- Monitor khi quyền điều khiển được chuyển qua GDB.Địa chỉ chương trình được debug phải đuợc thiết lập tại thời gian liên kết.Thông thường những chương trình T-Kernel - based có định dạng tái định vị,địa chỉ chương trình được xác định lúc tải.Vì nguyên nhân này mà chương trình phải được liên kết sử dụng địa chỉ luận lý cố định cho debug. 4.2. Chuẩn bị hardware và host Kết nối T-Engine với máy chủ sử dụng giao tiếp RS-232C Tạofile khởi tạo cho GDB.Khi GDB được thực thi nó sẽ load file .gdbinit trong thư mục hiện hành như là file khởi động của chính nó.Cấu hình của file như sau: set remotebaud 115200 target tmon_sh4 /dev/ttyS0 directory .:../src • set remotebaud 115200 Tốc độ giao tiếp với mục tiêu. • target tmon_sh4 /dev/ttyS0 Mô tả monitor đích.Trong Linux /dev/ttyS0 tương đương với cổng com1.Cần lưu ý là phải cho cấp quyền đọc ghi cho com1. • directory .:.. /src Mô tả thư mục chứa source file. Chương trình đích phải được compile để debug.Để xây dựng một file thực thi cho debug: $ gmake mode = debug hoặc là thực thi gmake trong thư mục sh7760.debug 4.3. Chuẩn bị cho chương trình của mỗi định dạng 4.3.1. Phần mềm T-Monitor-base Phần mềm T-Monitor-based được liên kết với địa chỉ tuyệt đối để chương trình khớp với một phạm vi địa chỉ cho phép nó được load trong khi T-Monitor đang chạy. $BD /monitor/test là một chương trình mẫu. Tạo file khởi tạo GDB với nội dung sau. $BD/monitor/test/src/.gdbinit sh4 set remotebaud 38400 target tmn_sh4 /dev/ttyS0 directory .:../src Các bước chuẩn bị cho chuơng trình debug: Chuyển đến thư mục chứa chương trình mẫu: devl@pc1:/usr/local/te/$ cd /usr/local/te/monitor/test Tạo thư mục làm việc cho debug sử dụng: T-MONITOR 58 devl@pc1:/usr/local/te/monitor/test/$ mkdir sh7760.debug Chuyển đến thư mục này devl@pc1:/usr/local/te/monitor/test/$ cd sh7760.debug/ Tạo symbolic link đến Makefile devl@pc1:/usr/local/te/monitor/test/sh7760.debug/$ ln -s ../src/Makefile Tạo symbolic link đến file khởi tạo GDB. devl@pc1:/usr/local/te/monitor/test/sh7760.debug/$ ln -s ../src/.gdbinit sh4 .gdbinit Copy link script. devl@pc1:/usr/local/te/monitor/test/sh7760.debug/$ cp ../sh7760/test.lnk . Chạy gmake: devl@pc1:/usr/local/te/monitor/test/sh7760.debug/$ gmake Makefile:79: Dependencies: No such file or directory touch Dependencies /usr/local/te/etc/makedeps -r Dependencies crt0.o /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/gccsh -m4 -mno-implicit-fp -I. -I../src -I/usr /local/te/include -D SH7760 -DDEBUG -c ../src/crt0.S -o crt0.o /usr/local/te/etc/makedeps -r Dependencies test.o /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/gccsh -g -m4 -mno-implicit-fp -ffreestanding -Wall -Wno-format -Wno-main -I. -I../src -I/usr/local/te/include -D SH7760 -DDEBUG -c ../src/test.c -o test.o /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/gccsh -L/usr/local/te/lib/sh7760 -m4 -mno-implicit-fp -static -nostdlib -T test.lnk crt0.o test.o -lg -ltm -lgcc -o test ™ test.link chỉ địa chỉ sau liên kết. /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/nm -n test >test.map /usr/local/te/tool/Linux-i686/bin/sh-unknown-tkernel-objcopy -O srec --srec-forceS3 --srec-len 32 test test.mot devl@pc1:/usr/local/te/monitor/test/sh7760.debug/$ Sau khi compile chương trình,khởi động GDB và sử dụng hàm load của GDB load file chương trình sau đó thực thi nó. 4.3.2. Phần mềm T-Kernel-based Phần mềm T-Kernel-based được load vào trong bộ nhớ sử dụng lệnh lodspg của CLI hay IMS.Lúc này không gian hệ thống được tự động định vị lại.Do đó những địa chỉ thiết lập trong chương trình khác với địa chỉ thực sự được load và debug bởi GDB là không thể. Khi debug,vào thời điểm liên kết,một phạm vi địa chỉ được thiết kế cho phép chương trình được load trong định dạng địa chỉ tĩnh.File được chạy trên target,và một file có định dạng tương tự cũng được load trong GDB trên máy chủ để debug. $BD/kappl/sample là file mẫu được sử dụng. Đầu tiên ta phải có một số sửa đổi cần thiết trong chương trình cho debug. Mục đích của việc sửa đổi là quyền điều khiển sẽ chuyển cho T-Monitor khi chương trình được bắt đầu.Do GDB sử dụng các hàm của T-Monitor cho debug. $BD/kappl/sample/src/main.c Thêm các dòng sau vào vào đầu file.Điều này là cần thiết để có thể sử dụng tm_monitor() #ifdef DEBUG T-MONITOR 59 #include #endif Thêm những lệnh sau vào main() trước dòng lệnh đầu tiên. #ifdef DEBUG tm_monitor(); #endif Mục đích là để chương trình chuyển quyền điều khiển cho T-Monitor ngay lập tức sau khi thực thi.Hàm được bao bởi #ifdef DEBUG và #endif chỉ có giá trị trong debug mode. $BD/kappl/sample/src/Makefile Cuối dòng CFLAGS thêm: ifeq ($(mode), debug) LDLIBS += -ltm endif ifeq ($(MACHINE), sh7760) $(TARGET).abs: START ADR = -Wl,-Ttext,0xc0000074 endif Thêm thư viện (libtm.a) cần thiết để sử dụng các hàm T-Monitor và chỉ rõ địa chỉ bắt đầu ở dạng địa chỉ tĩnh. Mô tả một luật mới tạo file để load target.Thêm vào phía trước all: ifeq ($(mode), debug) NOINST = $(TARGET).trg endif Thêm $(NOINST) vào phía cuối của all:như sau: all: $(ALL) $(NOINST) Thêm luật $(TARGET).trg phía sau luật $(TARGET).abs $(TARGET).trg: $(TARGET).abs cp $< $@ $(STRIP) $@ Thêm $(NOINST) vào clean như sau: clean: $(RM) $(OBJ) $(SRC.C) $(INST) $(NOINST) $(DEPS) $BD/kappl/sample/src/.gdbinit_sh4 Tạo file khởi tạo GDB với nội dung sau.Chỉnh lại tốc độ giao tiếp của T-Engine set remotebaud 38400 target tmon sh4 /dev/ttyS0 directory .:../src Các bước chuẩn bị chương trình cho debug : Chuyển đến thư mục của chương trình sample devl@pc1:/usr/local/te/$ cd /usr/local/te/kappl/sample Tạo thư mục làm việc cho trình debug sử dụng devl@pc1:/usr/local/te/kappl/sample/$ mkdir sh7760.debug Chuyển đến thư mục làm việc devl@pc1:/usr/local/te/kappl/sample/$ cd sh7760.debug T-MONITOR 60 Tạo symbolic link đến Makefile devl@pc1:/usr/local/te/kappl/sample/sh7760.debug/$ ln -s ../src/Makefile Tạo symbolic link đến file khởi tạo GDB devl@pc1:/usr/local/te/kappl/sample/sh7760.debug/$ ln -s ../src/.gdbinit sh4 .gdbinit Chạy make devl@pc1:/usr/local/te/kappl/sample/sh7760.debug/$ gmake Makefile:224: Dependencies: No such file or directory touch Dependencies /usr/local/te/etc/makedeps -r Dependencies main.o /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/gccsh -g -m4 -mno-implicit-fp -ffreestanding -Wall -Wno-format -Wno-main -I/usr/local/te/include -D SH7760 -DDEBUG -c ../src/main.c -o main.o /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/gccsh -L/usr/local/te/lib/sh7760 -m4 -mno-implicit-fp -r -T /usr/local/te/lib/sh7760/reloc.lnk main.o -lg -ltk -lg -lsvc -ltm -o sample ƒ Một đối tượng định dạng tái định vị.Cái này không được sử dụng trong suốt quá trình debug. /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/gccsh -specs=specs-tk -L/usr/local/te/lib/sh7760 -m4 -mno-implicit-fp -static -T /usr/local/te/lib/sh7760/static.lnk -Wl,-Ttext,0xc0000074 main.o -lg -ltk -lg -lsvc -ltm -o sample.abs ƒ Địa chỉ sau khi link được định rõ bởi –Wl,-Ttext,0xc0000074 /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/nm -n sample.abs > sample.map ƒ Map file /usr/local/te/tool/Linux-i686/bin/sh-unknown-tkernel-objcopy -O srec --srec-forceS3 --srec-len 32 sample.abs sample.mot ƒ Tạo S-format file .Nó không sử dụng trong ví dụ này. cp sample.abs sample.trg ƒ Khi make được chạy trên debug mode,thông tin debug được thêm vào file chương trình làm tăng kích thước nó. /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/strip --strip-unneeded sample.trg ƒ Gở bỏ thông tin debug từ sự truyền file devl@pc1:/usr/local/te/kappl/sample/sh7760.debug/$ Gởi sample.trg đến máy đích bằng lệnh recv của CLI ,sau đó load và chạy chương trình: lodspg sample.trg.Sau khi tm_monitor() được thực thi quyền điều khiển được chuyển từ máy đích đến T-Monitor,bắt đầu GDB trên máy chủ.(Chi tiết sẽ trình bày sau). 4.3.3. Phần mềm Process-based Phần mềm process-based chạy trên bộ nhớ ảo,và do đó địa chỉ không thay đổi sau khi link.Do đó không cần phải định lại địa chỉ đối với các phần mềm process-based.Điều này cũng giải thích cho sự bỏ qua các bước chuẩn bị cho chương trình T-Kernel-based,GDB sử dụng các hàm T- Monitor để xây dựng debug.Vì lý do này sau khi bắt đầu chương trình đích,quyền điều khiển phải được chuyển cho T-Monitor.Việc này có thể thực hiện được bằng cách thêm tm_monitor() vào một vị trí thích hợp trong chương trình .Sau khi quyền điều khiển chuyển sang T- T-MONITOR 61 Monitor,GDB được bắt đầu, các breakpoint và like được xác lập và chương trình debug được chạy trên máy đích. Thêm #include vào file nguồn nơi mà tm_monitor được thêm vào,và thêm LDLIBS += -lmt Vào Makefile. Sử dụng $BD/bappl/fileio cho ví dụ: Tại điểm bắt đầu của $BD/bappl/fileio/src/test.c thêm vào #ifdef DEBUG #include #endif Trước khi khởi tạo printf ở MBEG trong $BD/bappl/fileio/src/test.c thêm vào dòng sau: #ifdef DEBUG tm_monitor(); #endif Sau CFLAGS ở $BD/bappl/fileio/src/Makefile thêm những dòng sau : ifeq ($(mode), debug) LDLIBS += -ltm endif Và thêm trước INST: ifeq ($(mode), debug) NOINST = $(TARGET).trg endif Thêm $(NOINST) vào cuối của ALL như sau: ALL = $(INST) $(NOINST) Thêm mới make rule cho $(TARGET).trg sau $(OBJ): $(TARGET).trg: $(TARGET) cp $< $@ $(STRIP) $@ $BD/bappl/fileio/src/.gdbinit sh4 Tạo file khởi tạo GDB với nội dung set remotebaud 38400 target tmon sh4 /dev/ttyS0 directory .:../src Những bước chuẩn bị chương trình cho debug: Chuyển đến thư mục chứa chương trình cho debug devl@pc1:/usr/local/te/$ cd /usr/local/te/bappl/fileio Tạo thư mục làm việc cho trình debug sử dụng T-MONITOR 62 devl@pc1:/usr/local/te/bappl/fileio/$ mkdir sh7760.debug Thay đổi thư mục làm việc. devl@pc1:/usr/local/te/bappl/fileio/$ cd sh7760.debug Tạo symbolic link đến Makefile devl@pc1:/usr/local/te/bappl/fileio/sh7760.debug/$ ln -s ../src/Makefile Tạo symbolic link đến file khởi động GDB devl@pc1:/usr/local/te/bappl/fileio/sh7760.debug/$ ln -s ../src/.gdbinit sh4 .gdbinit Chạy gmake devl@pc1:/usr/local/te/bappl/fileio/sh7760.debug/$ gmake Makefile:61: Dependencies: No such file or directory touch Dependencies /usr/local/te/etc/makedeps -r Dependencies test.o /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/gccsh -g -m4 -mno-implicit-fp -ffreestanding -Wall -Wno-format -Wno-main -DPROCESS BASE -I/usr/local/te/include -D SH7760 -DDEBUG -c ../src/test.c -o test.o /usr/local/te/etc/makedeps -r Dependencies fileio.o /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/gccsh -g -m4 -mno-implicit-fp -ffreestanding -Wall -Wno-format -Wno-main -DPROCESS BASE -I/usr/local/te/include -D SH7760 -DDEBUG -c ../src/fileio.c -o fileio.o GNU Dev. Env. Manual (SH7760) 1.A0.00 Copyright c ° 2004 by Personal Media Corporation 5 USING GDB 20 /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/gccsh -L/usr/local/te/lib/sh7760 -m4 -mno-implicit-fp -static test.o fileio.o -lapp -Wl,-n( -lg -lbt -Wl,-n) -lsvc -ltm -o test /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/nm -n test > test.map cp test test.trg /usr/local/te/tool/Linux-i686/sh-unknown-tkernel/bin/strip --strip-unneeded test.trg devl@pc1:/usr/local/te/bappl/fileio/sh7760.debug/$ Gởi test.trg đến máy đích bằng lệnh recv của CLI,và chạy nó từ CLI .Sau khi tm_monitor() được thực thi quyền điều khiển chuyển từ máy đích đến T-Monitor,bắt đầu GDB trên máy chủ 4.4. Debug những chương trình T-Monitor-based 4.4.1. Khởi động máy đích Khởi động máy đích với DIP-SW1 ở vị trí ON để bắt đầu T-Monitor 4.4.2. Debug với GDB devl@pc1:/usr/local/te/$ cd /usr/local/te/monitor/test/sh7760.debug devl@pc1:/usr/local/te/monitor/test/sh7760.debug/$ /usr/local/te/tool/Linux-i686/bin/sh-unknown-tmonitor-gdb test GNU gdb 5.2 Copyright 2002 Free Software Foundation, Inc. T-MONITOR 63 GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "--host=i686-pc-linux-gnu --target=sh-unknown-tkernel"... 0x800000ae in ?? () ™ “??” ở đây có nghĩa là bộ đếm chương trình (PC) không hợp lệ ở điểm này.Chương trình đích đầu tiên phải chuyển tất cả vào máy đích. (gdb) load .text : 0x8C200000 .. 0x8c202eb0 .data : 0x8c202eb0 .. 0x8c202eb0 Transfer rate: 95616 bits in <1 sec, 1086 bytes/write. ™ Chương trình đích được chuyển vào địa chỉ được chỉ định trong lúc link.Đánh lệnh l (list) để hiển thị source trước và sau điểm nhập chương trình (program entry point) (gdb) l 36 tm_putstring(buf); 37 } 38 39 void main(void) 40 { 41 int i, n, c, er; 42 int blksz, nblks; 43 char buf[256], buf2[256]; 44 45 tm_putstring("** T-Monitor Test Start **\n"); (gdb) l 46 47 tm_putstring("> Enter T-Monitor. G-command to return:\n"); 48 tm_monitor (); 49 50 tm_putstring("> Enter characters: "); 51 for (;;) { 52 c = tm_getchar(1); 53 if (c == '\n' || c == '\r') break; 54 tm_putchar(c); 55 } ™ Breakpoint được thiết lập ở những vị trí cần thiết để được kiểm tra bằng lệnh b (breakpoint) (gdb) b 47 Breakpoint 1 at 0x8c2000b2: file ../src/test.c, line 47. ™ c (continue) tiếp tục thực thi.Khi gặp breakpoint,quyền điêu khiển trả lại cho GDB (gdb) c Continuing. from target> ** T-Monitor Test Start ** Breakpoint 1, main () at ../src/test.c:47 T-MONITOR 64 47 tm_putstring("> Enter T-Monitor. G-command to return:\n"); ™ Kết thúc GDB bằng lệnh q (gdb) q The program is running. Exit anyway? (y or n) y devl@pc1:/usr/local/te/monitor/test/sh7760.debug/$ Thông thường debug được xây dựng bằng các lệnh như bt(back trace),p(print),s(step),và n(next). 4.5. Debug những chương trình T-Kernel-based 4.5.1. Khởi động máy đích Gắn boot disk vào máy đích và khởi động nó với DIP-SW1 ở vị trí OFF.Nếu DIP-SW1 ON,nó khởi động T-Monitor và dừng.Trong trường hợp này đánh lệnh bd pca0 để bắt đầu T-Kernel. 4.5.2. Debug với GDB devl@pc1:/usr/local/te/$ cd /usr/local/te/kappl/sample/sh7760.debug devl@pc1:/usr/local/te/kappl/sample/sh7760.debug/$ /usr/local/te/tool/Linux-i686/etc/gterm -3 -l/dev/ttyS0 Bắt đầu gterm > [/SYS]% recv sample.trg Chuyển chương trình cho debug bằng lệnh “recv filename” của CLI.Nếu sample.trg đã tồn tại,thực thi lệnh “recv -d filename “ để overwrite nó. Target: sample.trg [Target: sample.trg: 15236 bytes] ....*...! (2933.0 bytes/sec) [/SYS]% lodspg sample.trg Thực thi lệnh “lodspg filename ” để load chương trình T-Kernel-based vào bộ nhớ. TM> .q tm_monitor() thêm vào cho debug thực thi ,chuyển quyền điều khiển cho T-Monitor. Thoát gterm tại đây. > devl@pc1:/usr/local/te/kappl/sample/sh7760.debug/$ /usr/local/te/tool/Linux-i686/bin/sh-unknown-tmonitor-gdb sample.abs Bắt đầu GDB. GNU gdb 5.2 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "--host=i686-pc-linux-gnu --target=sh-unknown-tmonitor"... T-MONITOR 65 0xc0002a2c in tm monitor () Hiển thị source code xung quanh vị trí hiện hành. (gdb) l 11 #ifdef DEBUG 12 #include 13 #endif 14 15 EXPORT ER main( INT ac, UB *av[] ) 16 { 17 INT i; 18 19 #ifdef DEBUG 20 tm_monitor(); (gdb) l 21 #endif 22 printf("hello (ac=%d)\n", ac); 23 24 for ( i = 0; i < ac; ++i ) { 25 printf(" av[%d] = '%s'\n", i, av[i]); 26 } 27 28 return E_OK; 29 } (gdb) b 25 Một breakpoint được thiết lập ở dòng 25.Để thiết lập breakpont ở một file khác,đánh lệnh như “b sub.c:34”. Breakpoint 1 at 0xc00001e0: file ../src/main.c, line 25. (gdb) c Continuing. from target> hello (ac=1) Breakpoint 1, main (ac=1, av=0x40259188) at ../src/main.c:25 25 printf(" av[%d] = '%s'\n", i, av[i]); Sự thực thi dừng ở breakpoint.Source code xung quanh điểm này được hiển thị. (gdb) p i Hiển thị biến i $1 = 0 (gdb) p av[i] av[i] được hiển thị. $2 = (UB *) 0x40259170 "sample.trg" (gdb) p ac biến ac được hiển thị. $3 = 1 (gdb) n n (next) tiến đến một dòng. from target> av[0] = 'sample.trg' 24 for ( i = 0; i < ac; ++i ) { (gdb) n 28 return E_OK; (gdb) p i $4 = 1 T-MONITOR 66 (gdb) c Sự thực thi được khôi phục bằng c (continue). Continuing. from target> SYSPRG sample.trg [6] c0000000 - c0005000 from target> [/SYS]% Khi chương trình được debug kết thúc,không có kết quả trả về cho GDB .Trng trường hợp như vậy nhấn Ctrl + C hai lần để hiển thị GDB prompt. from target> [/SYS]% [/SYS]% Interrupted while waiting for the program. Give up (and stop debugging it)? (y or n)y (gdb) q Thoát GDB bằng q(quit). devl@pc1:/usr/local/te/kappl/sample/sh7760.debug/$ Thông thường khi một chương trình kết thúc,nó vẫn còn ở trong bộ nhớ.Khi GDB thoát bằng Ctrl + C mà breakpoint vẫn còn được thiết lập như trên,những breakpoint định bởi T-Monitor vẫn lưu lại.Bắt đầu gterm ,đến T-Monitor và xóa những breakpoint này. devl@pc1:/usr/local/te/kappl/sample/sh7760.debug/$ /usr/local/te/tool/Linux-i686/etc/gterm -3 -l/dev/ttyS0 > Lệnh # chuyển đến T-Monitor. [/SYS]% # Liệt kê các breakpoint bằng lệnh b của T-Monitor . TM> b C00001E0 S Xóa breakpoint bằng lệnh bc của T-Moniotr TM> bc Trở lại CLI bằng lệnh g của T-Monitor. TM> g [/SYS]% Thực thi lệnh “regspg” của CLI để xác nhận chương trình hệ thống được load. [/SYS]% ref spg SYSTEM PROGRAM: [ 1] - 0x40208000 - 11 kbpd [ 2] - 0x40213000 - 8 lowkbpd [ 3] - 0x4021b000 - 6 rsdrv [ 4] - 0x40221000 - 5 screen [ 5] - 0x40273000 - 53 unixemu [ 6] - 0xc0000000 - 5 sample.trg Sử dụng lệnh “unlspg load ID” của CLI để xóa một chương trình T-Kernel-based thường trú trong bộ nhớ. [/SYS]% unlspg 6 Sự thực thi dừng lại ở tm_moniotor().Khôi phục sự thực thi bằng lệnh g của T-Monitor TM> g hello (ac=-1) [/SYS]% T-MONITOR 67 4.6. Debug những phần mềm Process-based Một chương trình process-based được compile cho debug sử dụng,sau đó gterm được dùng để gởi chương trình từ máy chủ đến đích,nơi mà nó được lưu lên đĩa như là load một chương trình bình thường.Trong một số trường hợp chỉ một bộ phận chương trình process-based được load lên bộ nhớ thực,do đó một lỗi xảy ra khi trình debug truy cập phần không ở trên bộ nhớ.Trong suốt quá trình debug thực thi lệnh sau của CLI để chương trình được load lại: ref pld 1 Thực thi lệnh: ref dbg 1 để chuyển quyền điều khiển chuyển sang cho T-Monitor khi một exection xảy ra 4.6.1. Khởi động máy đích Gắn boot disk vào máy đích và khởi động nó với DIP-SW1 ở vị trí OFF .Nếu DIP-SW1 ON ,máy đích khởi động T-Monitor và dừng.Trong trường hợp này thực thi bd pca0 để bắt đầu T-Kernel. 4.6.2. Debug với GDB devl@pc1:/usr/local/te/$ cd /usr/local/te/bappl/fileio/sh7760.debug devl@pc1:/usr/local/te/bappl/fileio/sh7760.debug/$ /usr/local/te/tool/Linux-i686/etc/gterm -3 -l/dev/ttyS0 > [/SYS]% recv test.trg Target: test.trg .. [test.trg: 61024 bytes] ....*....*....*....*....*....*....*.! (3876.2 bytes/sec) Bắt đầu chương trình để debug [/SYS]% ref pld 1 [/SYS]% ref dbg 1 [/SYS]% test.trg tm_monitor() trong chương trình để debug chuyển quyền điều khiển sang T-Monitor,do đó nhập .q để thoát khỏi gterm TM> .q > Bắt đầu GDB. devl@pc1:/usr/local/te/bappl/fileio/sh7760.debug/$ /usr/local/te/tool/Linux-i686/bin/sh-unknown-tmonitor-gdb test T-MONITOR 68 GNU gdb 5.2 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "--host=i686-pc-linux-gnu --target=sh-unknown-tmonitor"... 0x0010917c in tm monitor () y This shows that processing has stopped in tm monitor(). GNU Dev. Env. Manual (SH7760) 1.A0.00 Copyright c ° 2004 by Personal Media Corporation 5 USING GDB 26 Hiển thị source code xung quanh vùng hiện hành. (gdb) l 578 tk_ext_tsk(); 579 } 580 #endif 581 582 MBEG 583 { 584 /* In case of T-Kernel based program, the following is 585 executed in the context of the initial process. */ 586 #ifdef DEBUG 587 tm_monitor(); (gdb) l 588 #endif 589 printf( "ANSI-C fileio test start\n" ); 590 591 test_remove(); 592 test_rename(); 593 test_fopen_a(); 594 test_fopen_w(); 595 test_tmpfile(); 596 test_tmpnam(); 597 test_setbuf(); Thiết lập breakpoint trong hàm test_fopen_a(). (gdb) b test_ fopen_ a Breakpoint 1 at 0x101394: file ../src/test.c, line 152. (gdb) c Continuing. from target> ANSI-C fileio test start Breakpoint 1 at 0x100e28: file ../src/test.c, line 152. 152 assert( (f = fopen( F, "w" )) != NULL ); Sự thực thi dừng ở breakpoint.Source code xung quanh điểm đó được hiển thị. (gdb) s Enters the hàm fopen() fopen (filename=0x109f38 "tmp00", mode=0x109d2c "w") at ../src/fileio.c:793 793 initialize(); (gdb) l T-MONITOR 69 788 FILE *fopen( const char *filename, const char *mode ) 789 { 790 FILE *stream; 791 792 /* initialization */ 793 initialize(); 794 795 /* allocate FILE structure */ 796 if ((stream = alloc_file()) == NULL) { 797 goto er0; (gdb) l 798 } 799 800 /* open file */ 801 if ( open_file( filename, mode, bdy( stream ), 0 ) < 0 ) { 802 goto er1; 803 } 804 805 /* exit normally */ 806 return stream; 807 (gdb) tb open file Một breakpoint tạm thời được thiết lập trong open_file(). Breakpoint 2 at 0x104932: file ../src/fileio.c, line 624. (gdb) c Continuing. open file (filename=0x109f38 "tmp00", mode=0x109d2c "w", stream=0x1cd010, tmp flag=0) at .. /src/fileio.c:624 Sự thực thi dừng ở pen_file().Breakpoint này tự động được xóa. 624 md = LINE_MODE; (gdb) l 619 const char *p; 620 int e, fd, md, siz; 621 TC bp[FILENAME_MAX]; 622 623 /* interpret mode */ 624 md = LINE_MODE; 625 p = mode; 626 switch (*p++) { 627 case 'r' : 628 md |= READ_MODE; (gdb) l 629 break; 630 case 'w' : 631 md |= WRITE_MODE; 632 break; 633 case 'a' : 634 md |= APPEND_MODE; 635 break; 636 default : T-MONITOR 70 637 goto er1; 638 } (gdb) l 639 while (*p != '\0') { 640 switch (*p++) { 641 case '+' : 642 md |= UPDATE_MODE; 643 break; 644 case 'b' : 645 md ^= LINE_MODE; 646 break; 647 default : 648 goto er1; (gdb) l 649 } 650 } 651 652 /* open file */ 653 conv_pathname( filename, bp ); 654 if (tmp_flag || 655 get_lnk( bp, &(stream -> lnk), F_NORM ) < 0) { /* file not exists */ 656 if ((md & (READ_MODE | WRITE_MODE | APPEND_MODE)) == READ_MODE) { 657 goto er1; /* error if file not exists in read mode */ 658 } (gdb) tb 653 Breakpoint 3 at 0x104a80: file ../src/fileio.c, line 653. (gdb) c Continuing. open file (filename=0x109f38 "tmp00", mode=0x109d2c "w", 0x104932, tmp flag=0) at .. /src/fileio.c:653 653 conv_pathname( filename, bp ); (gdb) n 654 if (tmp_flag || (gdb) n 656 if ((md & (READ_MODE | WRITE_MODE | APPEND_MODE)) == READ_MODE) { (gdb) n 659 fd = create_file( bp, &(stream -> lnk), !tmp_flag ); /* create a new file */ (gdb) s Nhập create_file() create file (path=0x1ccd58, lnk=0x1cd032, parent flag=1) at ../src/fileio.c:206 206 if ((k = get_parent_link( path, &pln )) < 0) { (gdb) n 211 *lnk = pln; (gdb) p/x pln Giá trị của pln được hiển thị ở dạng hexadecimal. $1 = {fs name = {0x2357, 0x234f, 0x2352, 0x234b, 0x0 }, f_ id = 0x0, atr1 = 0x0, atr2 = 0x0, atr3 = 0x0, atr4 = 0x0, atr5 = 0x0} (gdb) n T-MONITOR 71 212 fd = cre_fil( lnk, (gdb) n 218 if (fd < 0) { (gdb) p fd Giá trị của fd được hiển thị ở dạng decimal. $2 = 37 (gdb) c Nhập c (continue) để khôi phục sự thực thi. Continuing. from target> test OK! from target> [/SYS]% Khi chương trình được debug kết thúc,không có giá trị trả về cho GDB.Trong trường hợp này nhập Ctrl + C hai lần để hiển thị GDB prompt. from target> [/SYS]% [/SYS]% [/SYS]% Ngắt quãng trong khi chờ đợi chương trình Give up (and stop debugging it)? (y or n) y (gdb) q devl@pc1:/usr/local/te/bappl/fileio/sh7760.debug/$ Khi GDB được thoát bằng Ctrl + C mà breakpoints vẫn thiết lập như trên, breakpoints thiết lập bởi T-Monitor sẽ vẫn còn.Đến T-Monitor và xóa breakpoints . devl@pc1:/usr/local/te/bappl/fileio/sh7760.debug/$ /usr/local/te/tool/Linux-i686/etc/gterm -3 -l/dev/ttyS0 > [/SYS]% # Liệt kê các breakpoint bằng lệnh b của T-Monitor. TM> b 00100E28 S Xóa breakpoints bằng lệnh bc của T-Monitor. TM> bc Trở lại CLI bằng lệnh g của T-Monitor TM> g [/SYS]% 4.7. Lưu ý trong debug • Sự kết thúc một sessionKhi quyền điều khiển chuyển sang GDB,nhấn q(quit) để thoát GDB.Nếu chương trình thực thi được tiếp tục bằng cách nhấn c(continue) mà không thiết lập các breakpoint,hay chương trình chạy mà không đi qua một breakpoint nào,hoặc là nếu nó rơi vào vòng lặp vô tận,quyền điều khiển sẽ không trả về cho GDB và dấu nhắc GDB sẽ không xuất hiện. Trong trường hợp này nhấn Ctrl + C hai lần dấu nhắc GDB sẽ xuất hiện.Sau đó nhấn q để thoát GDB. • Xuất thông điệp:Để trao đổi thông tin của lệnh và trạng thái với T-Monitor,GDB sử dụng kết nối giao tiếp nối tiếp của T-Engine.Dưới những điều kiện nào đó,việc đồng bộ có thể mất giữa GDB và T-Monitor.Nếu điều này diễn ra,shutdown GDB,khởi động gterm,và khi dấu nhắc T-Monitor xuất hiện,khởi động lại GDB. T-MONITOR 72 • Bước(stepping) trong điều khiển ngắt quãng (interrupt handler):Khi những breakpoint được thiết lập trong interrupt handler và chương trình dừng lại tại những breakpoint ,stepping cần một số chỉ thị đặc biệt.Điều đó có nghĩa là để kết thúc trình debug trong interrupt handler,quyền điều khiển phải trả lại máy đích với lệnh continue.GDB không biết chương trình thực thi các hàm thông thường hay interrupt handler,do đó nếu interrupt handler kết thúc bởi stepping,GDB sẽ không làm việc đúng đắn 5. GTERM (Terminal Software) Môi trường phát triển bao gồm binary và source cho gterm,là một terminal emulator software cho các máy Unix. 5.1. Các chỉ dẫn sử dụng Định dạng: gterm [options] [parameters] Tùy chọn: -c: Chỉ rõ tên command file khởi tạo Mặc định:file được chỉ định trong biến môi trường “GTERM” hay tên file ~/.gterm -l: Tên thiết bị nối tiếp (Mặc định cho Linux: /dev/ttyS1) -X: Khử dòng điều khiển bởi RTS/CTS -2: 2400 baund -4: 4800 baund -9: 9600 baund -1: 19200 baund (mặc định) -3: 38400 baund -5: 57600 baund -B: 115200 baund Các thông số: Các thông số thay thế cho dữ liệu nhập trong command file khởi tạo.Chúng thay thế $1 đến $9 trong command file. 5.2. Tác động Nếu bất kì dấu nhắc nào được chỉ định là output trên cổng nối tiếp,hệ thống sẽ đi đến mode dòng lệnh (command line mode).Những lệnh có thể được nhập trên một dòng cùng một lúc,những dòng có thể được soạn thảo,và các lệnh giả (pseudo-command) có tể được nhập.Các Pseudo- command,bắt đầu bằng các kí tự đặc biệt (mặc định là ‘.’),được xử lý bởi gterm bên trong và không xuất ra cổng nối tiếp. Bên ngoài command line mode,các kí tự được nhập trên bàn phím được xuất ra ngoài cổng nối tiếp một kí tự một lần,với những ngoại lệ sau. NL (^J) được gởi đến cổng như là CR (^M).^Z và ^\ không được gởi đến cổng. T-MONITOR 73 5.3. Các phím nhập đặc biệt ^C: Bỏ qua hành động (Cùng một lúc ^C được gởi đến cổng nối tiếp) ^\: Kết thúc (thoát tín hiệu) ^Z: Treo (csh điều khiển công việc) ™ Một chương trình có thể treo nếu một lệnh gởi không được trả lời lại,nhưng điều này có thể sửa bằng cách nhấn ^C. 5.4. Dòng lệnh (Command line) ‘\’ như là một kí tự escape;ví dụ ,’\c’ nghĩa là ‘c’. ‘^’ là một kí tự escape cho các kí tự điều khiển.Nếu các kí tự trực tiếp theo sau chỉ là ‘@’ đến ‘_’,nghĩa là ‘kí tự theo sau’ – ‘@’.’\^’ không được xem như là một kí tự điều khiển chuỗi escape.’{‘ và ‘}’ là ID separator,và được bỏ qua như là những kí tự.Để sử dụng ‘{‘ và ‘}’ như là các kí tự,chúng cần được mở đầu bằng ‘\’. ‘;;’ là kí tự phân tách các dòng lệnh.Một dòng có thể có một hay nhiều lệnh.Để nhập chính ‘;;’,phải sử dụng ‘\’ như : ‘\;\;’. Ví dụ: a ;; b ;; c => a b c .alias xx a\;\; b\;\; c xx => a b c ™ ‘;’ được công nhận như là một lệnh phân tách bởi target monitor,nhưng ‘;;’ được sử dụng trong gterm để ngăn một dòng trong nhiều lệnh.Điều này được sử dụng khi nhiều lệnh giả được viết trong một dòng. 5.5. Soạn thảo dòng lệnh (Command line Editing) ^A Dời con trỏ đến đầu dòng. ^E Dời con trỏ đến cuối dòng. ^K Xóa từ vị trí con trỏ đến cuối dòng DEL Xóa kí tự tại vị trí con trỏ ^D Xóa kí tự trước vị trí con trỏ ^X,^U Xóa dòng ^F Dời con trỏ tiến lên Dời con trỏ lên trước ^B Dời con trỏ lui lại Dời con trỏ lui lại

Các file đính kèm theo tài liệu này:

  • pdftailieu.pdf
Tài liệu liên quan