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ử ...
100 trang |
Chia sẻ: Khủng Long | Lượt xem: 1031 | Lượt tải: 0
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:
- tailieu.pdf