ນີ້ແມ່ນຄໍາສັ່ງ ao-dbg ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
ao-dbg - hex debugger ສໍາລັບໂປເຊດເຊີ cc1111
ສະຫຼຸບສັງລວມ
ao-dbg [-ທ cpu-type] [-X ຄວາມຖີ່] [-c] [-r ຊ່ອງຟັງ] [-Z ຊ່ອງຟັງ] [-s] [-ສ] [-ປ
ການກະຕຸ້ນເຕືອນ] [-V] [-v] [-H] [-h] [-m] [-T tty-ອຸປະກອນ] [--tty tty-ອຸປະກອນ] [-D altos-ອຸປະກອນ]
[-- ອຸປະກອນ altos-ອຸປະກອນ]
ລາຍລະອຽດ
ao-dbg ເຊື່ອມຕໍ່ກັບໂປເຊດເຊີ cc1111 ຜ່ານກະດານ cc1111 ທີ່ເຫມາະສົມຫຼື cp2103.
usb to serial converter board , ການນໍາໃຊ້ pins GPIO ທີ່ມີຢູ່ໃນຊິບນັ້ນ. ມັນສະຫນອງການ
ການໂຕ້ຕອບທີ່ເຫມາະສົມກັບ 8051 emulator ຈາກ sdcc ເອີ້ນວ່າ s51, ແຕ່ຕິດຕໍ່ສື່ສານກັບ
chip ທີ່ແທ້ຈິງແທນທີ່ຈະເປັນ emulation. ການນໍາໃຊ້ສະບັບດັດແກ້ຂອງ SDCC debugger
(sdcdb), ທ່ານສາມາດຄວບຄຸມການປະຕິບັດໂຄງການໃນເຄື່ອງເປົ້າຫມາຍໃນລະດັບແຫຼ່ງ.
OPTIONS
ຕົວເລືອກເສັ້ນຄໍາສັ່ງຖືກອອກແບບເພື່ອໃຫ້ເຂົ້າກັນໄດ້ກັບ 8051 emulator ເພື່ອໃຫ້ມັນ
ສາມາດໃຊ້ກັບ sdcdb. ດັ່ງນັ້ນ, ພວກເຂົາເຈົ້າທັງຫມົດແມ່ນຫນຶ່ງຕົວອັກສອນຍາວ.
-t cpu-type
8051 emulator ສາມາດດໍາເນີນການເປັນຫນຶ່ງໃນຊິບທີ່ແຕກຕ່າງກັນຫຼາຍ. Oddly, ທີ່ແທ້ຈິງ
ຮາດແວບໍ່ສາມາດ, ສະນັ້ນທາງເລືອກນີ້ຖືກລະເລີຍ.
-X ຄວາມຖີ່
ເຊັ່ນດຽວກັນ, emulator ສາມາດທໍາທ່າທີ່ຈະດໍາເນີນການຢູ່ໃນຄວາມຖີ່ທີ່ຕົນເອງມັກ.
ຮາດແວບໍ່ສາມາດເຮັດໄດ້. ບໍ່ສົນໃຈ.
-c
-s
-S
-v
-V ທັງໝົດຖືກລະເລີຍ.
-r ຊ່ອງຟັງ, -Z ຊ່ອງຟັງ
emulator ແລະ sdcdb ຕິດຕໍ່ສື່ສານຜ່ານເຕົ້າຮັບເຄືອຂ່າຍ. ທາງເລືອກນີ້ສະຫຼັບ
debugger ຈາກການສື່ສານຜ່ານ stdin/stdout ກັບການຟັງສະເພາະ
ພອດເຄືອຂ່າຍແທນ. ເມື່ອການເຊື່ອມຕໍ່ຖືກເຮັດ, debugger ຍັງສືບຕໍ່, ໂດຍໃຊ້
ພອດເຄືອຂ່າຍນັ້ນສໍາລັບການປ້ອນຄໍາສັ່ງແລະຜົນຜະລິດ. debugger ໃຊ້ພອດ 9756, ແລະ
ພະຍາຍາມເຊື່ອມຕໍ່ກ່ອນທີ່ຈະເປີດຕົວ ao-dbg, ດັ່ງນັ້ນຖ້າ ao-dbg ຟັງຢູ່ໃນພອດນີ້
ກ່ອນທີ່ sdcdb ຈະຖືກເລີ່ມຕົ້ນ, sdcdb ຈະສິ້ນສຸດການເວົ້າກັບຕົວຢ່າງ ao-dbg ທີ່ມີຢູ່ແລ້ວ.
ມັນມັກຈະເປັນປະໂຫຍດສໍາລັບການ debugging ao-dbg ຕົວຂອງມັນເອງ.
-p ການກະຕຸ້ນເຕືອນ
ນີ້ກໍານົດຄໍາສັ່ງຄໍາສັ່ງກັບສະຕຣິງທີ່ກໍານົດໄວ້.
-P ນີ້ກໍານົດການ prompt ຄໍາສັ່ງເປັນຕົວອັກສອນ NUL ດຽວ. ນີ້ແມ່ນສໍາລັບການນໍາໃຊ້ໂດຍ sdcdb.
-h ນີ້ຄວນຈະພິມຂໍ້ຄວາມການນໍາໃຊ້, ແຕ່ບໍ່ມີຫຍັງທີ່ເປັນປະໂຫຍດໃນປັດຈຸບັນ.
-m ຕົວເລືອກນີ້ບໍ່ມີຢູ່ໃນ emulator 8051 ຕົ້ນສະບັບ, ແລະເຮັດໃຫ້ ao-dbg ຖິ້ມ.
ຄໍາສັ່ງທັງຫມົດແລະຄໍາຕອບທີ່ໄດ້ຮັບຈາກແລະສົ່ງໄປ sdcdb.
-T tty-ອຸປະກອນ | --tty tty-ອຸປະກອນ
ອັນນີ້ເລືອກອຸປະກອນ tty ທີ່ເຄື່ອງດີບັກໃຊ້ເພື່ອຕິດຕໍ່ສື່ສານກັບເປົ້າໝາຍ
ອຸປະກອນ. ຊື່ພິເສດ 'BITBANG' ຊີ້ ao-dbg ເພື່ອໃຊ້ການເຊື່ອມຕໍ່ cp2103,
ຖ້າບໍ່ດັ່ງນັ້ນ, ນີ້ຄວນຈະເປັນພອດ serial usb ທີ່ເຊື່ອມຕໍ່ກັບດີບັກ cc1111 ທີ່ເຫມາະສົມ
ຂໍ້.
-D AltOS-ອຸປະກອນ | --device AltOS-device
ຊອກຫາອຸປະກອນທີ່ເຊື່ອມຕໍ່. ນີ້ຮຽກຮ້ອງໃຫ້ມີການໂຕ້ຖຽງຂອງຫນຶ່ງໃນຕໍ່ໄປນີ້
ແບບຟອມ:
TeleMetrum:2
TeleMetrum
2
ການປະຖິ້ມຊື່ຜະລິດຕະພັນຈະເຮັດໃຫ້ເຄື່ອງມືເລືອກຜະລິດຕະພັນທີ່ເຫມາະສົມ,
ການອອກເລກ serial ຈະເຮັດໃຫ້ເຄື່ອງມືກົງກັບຫນຶ່ງໃນທີ່ມີຢູ່
ອຸປະກອນ.
ສາມາດ
ເມື່ອເລີ່ມຕົ້ນ, ao-dbg ເຊື່ອມຕໍ່ກັບ cc1111 ແລະຫຼັງຈາກນັ້ນອ່ານແລະປະຕິບັດຄໍາສັ່ງ, ບໍ່ວ່າຈະ.
ຈາກ stdin, ຫຼືການເຊື່ອມຕໍ່ nework ກັບ sdcdb.
ບໍ່ເຫມືອນກັບເສັ້ນຄໍາສັ່ງ, ao-dbg ມີການຊ່ວຍເຫຼືອໃນຕົວສໍາລັບແຕ່ລະຄໍາສັ່ງເຫຼົ່ານີ້, ຜ່ານ
'ຊ່ວຍ' ຄໍາສັ່ງ. ຄໍາສັ່ງສ່ວນໃຫຍ່ແມ່ນມີຢູ່ໃນຮູບແບບຍາວແລະຕົວອັກສອນດຽວ
ຮູບແບບສັ້ນ. ຂ້າງລຸ່ມນີ້, ຮູບແບບສັ້ນປະຕິບັດຕາມຮູບແບບຍາວຫຼັງຈາກເຄື່ອງໝາຍຈຸດ.
ຊ່ວຍ, ? {ຄໍາສັ່ງ}
ໂດຍບໍ່ມີການໂຕ້ຖຽງ, ພິມບັນຊີລາຍຊື່ຂອງຄໍາສັ່ງທີ່ມີຢູ່. ມີການພິມການໂຕ້ຖຽງ
ລາຍລະອຽດເພີ່ມເຕີມກ່ຽວກັບຄໍາສັ່ງສະເພາະ
ເຊົາ, q
ຢຸດແອັບພລິເຄຊັນ, ໂດຍບໍ່ມີການປ່ຽນສະຖານະຂອງໂຮງງານຜະລິດເປົ້າໝາຍ.
di [ເລີ່ມຕົ້ນ] [ສິ້ນສຸດ]
Dumps imem (256 bytes ຂອງ "ພາຍໃນ" ຫນ່ວຍຄວາມຈໍາ) ຈາກຕົ້ນຈົນຈົບ (ລວມ).
ds [ເລີ່ມຕົ້ນ] [ສິ້ນສຸດ]
Dumps sprs ຈາກຕົ້ນຈົນຈົບ (ລວມ). ໃຫ້ສັງເກດວ່າໃນຂະນະທີ່ sprs ສ່ວນຫຼາຍແມ່ນເຫັນໄດ້ໃນ
ພື້ນທີ່ທີ່ຢູ່ທົ່ວໂລກ, ບາງຢ່າງບໍ່ແມ່ນ, ດັ່ງນັ້ນໃຊ້ຄໍາສັ່ງນີ້ແທນ "dx" ເພື່ອອ່ານ
ໃຫ້ເຂົາເຈົ້າ.
dx [ເລີ່ມຕົ້ນ] [ສິ້ນສຸດ]
ຖິ້ມຄວາມຊົງຈຳພາຍນອກ (ທົ່ວໂລກ) ຕັ້ງແຕ່ຕົ້ນຈົນຈົບ (ຮວມ).
ຕັ້ງ, t [ເລີ່ມ] {ຂໍ້ມູນ ...}
ເກັບຮັກສາໄວ້ໃນພື້ນທີ່ຄວາມຊົງຈໍາທີ່ລະບຸໄວ້ໂດຍຄໍານໍາຫນ້າທີ່ຄໍານໍາຫນ້າແມ່ນຫນຶ່ງໃນ "xram", "rom",
"iram", ຫຼື "sfr". ເກັບຮັກສາ bytes ເລີ່ມຕົ້ນໃນຕອນເລີ່ມຕົ້ນ.
ຖິ້ມ, ງ [ເລີ່ມຕົ້ນ] [ທ້າຍ]
ຖິ້ມຈາກພື້ນທີ່ຫນ່ວຍຄວາມຈໍາທີ່ລະບຸໄວ້ໂດຍຄໍານໍາຫນ້າ, ບ່ອນທີ່ຄໍານໍາຫນ້າແມ່ນຫນຶ່ງໃນ "xram",
"rom", "iram" ຫຼື "sfr". ການຖິ້ມຂີ້ເຫຍື້ອຈາກຕົ້ນຈົນຈົບ (ລວມ).
ໄຟລ໌ [ຊື່ໄຟລ໌]
ລະບຸໄຟລ໌ hex ຮູບແບບ intel (ihx) ທີ່ມີເນື້ອໃນຂອງພື້ນທີ່ ROM
ໂຫລດເຂົ້າໄປໃນ cc1111. ອັນນີ້ຖືກໃຊ້ເພື່ອຕອບສະໜອງຕໍ່ການຮ້ອງຂໍໃຫ້ dump ໜ່ວຍຄວາມຈຳ ROM
ເນື້ອຫາໂດຍບໍ່ໄດ້ຮັບພວກມັນຈາກ cc1111 (ເຊິ່ງຊ້າ).
pc, p {ທີ່ຢູ່}
ຖ້າຫາກວ່າການໂຕ້ຖຽງທີ່ຢູ່ແມ່ນໄດ້ຮັບ, ນີ້ກໍານົດໂຄງການຕ້ານການທີ່ລະບຸໄວ້
ຄ່າ. ຖ້າບໍ່ດັ່ງນັ້ນ, ຄ່າຕ້ານຂອງໂຄງການໃນປັດຈຸບັນຈະສະແດງ.
break, b [ທີ່ຢູ່]
ກໍານົດຈຸດຢຸດຢູ່ທີ່ທີ່ຢູ່ທີ່ກໍານົດໄວ້. ອັນນີ້ໃຊ້ຮາດແວໃນຕົວ
ສະຫນັບສະຫນູນຈຸດຢຸດໃນ cc1111. ດັ່ງນັ້ນ, ມັນສະຫນັບສະຫນູນບໍ່ເກີນສີ່
ຈຸດຢຸດໃນເວລາດຽວ. ສະນັ້ນທ່ານຕ້ອງໃຊ້ sdcdb ສະບັບດັດແກ້ທີ່
ປ່ຽນແປງວິທີການປະຕິບັດໂຄງການຖືກຄວບຄຸມໃຫ້ເຮັດວຽກພາຍໃນຂອບເຂດຈໍາກັດນີ້.
ຈະແຈ້ງ, c [ທີ່ຢູ່]
ລຶບຈຸດຢຸດຈາກທີ່ຢູ່ທີ່ລະບຸໄວ້.
ແລ່ນ, r, ໄປ, g {start} {stop}
ສືບຕໍ່ການດໍາເນີນການຂອງໂຄງການ. ຖ້າການໂຕ້ຖຽງການເລີ່ມຕົ້ນແມ່ນປະຈຸບັນ, ມັນຈະເລີ່ມຕົ້ນ
ໃນທີ່ຢູ່ນັ້ນ, ຖ້າບໍ່ດັ່ງນັ້ນມັນຍັງສືບຕໍ່ແລ່ນຢູ່ໃນຄອມພິວເຕີປະຈຸບັນ. ຖ້າຢຸດ
ການໂຕ້ຖຽງແມ່ນມີຢູ່, ຫຼັງຈາກນັ້ນຈຸດຢຸດຊົ່ວຄາວແມ່ນຕັ້ງຢູ່ໃນທີ່ຢູ່ນັ້ນ. ນີ້
ຈຸດຢຸດຊົ່ວຄາວຈະຖືກເອົາອອກເມື່ອການດຳເນີນການປະສົບກັບມັນ.
ຕໍ່ໄປ, ນ
ຂັ້ນຕອນທີຫນຶ່ງຄໍາແນະນໍາ. ໃນໂຄງການ s51 ຕົ້ນສະບັບນີ້ຈະບໍ່ສົນໃຈ subroutines,
ແຕ່ຍ້ອນວ່າ sdcdb ບໍ່ຕ້ອງການຟັງຊັນນີ້, ມັນບໍ່ສາມາດໃຊ້ໄດ້ທີ່ນີ້.
ຂັ້ນຕອນ, s
ຂັ້ນຕອນທີຫນຶ່ງຄໍາແນະນໍາ.
ໂຫຼດ, l [ຊື່ໄຟລ໌]
ນີ້ບໍ່ໄດ້ຖືກປະຕິບັດ, ແຕ່ມັນຄວນຈະໂຫລດໄຟລ໌ hex ເຂົ້າໄປໃນ flash. ໃຊ້
ccload program ແທນ.
ຢຸດ, ຮ
ຢຸດໂຮງງານຜະລິດ. ນີ້ແມ່ນຄໍາສັ່ງດຽວທີ່ສາມາດສົ່ງໄດ້ໃນຂະນະທີ່ໂຄງການແມ່ນ
ແລ່ນ. ມັນຖືກລະເລີຍໃນເວລາອື່ນ.
ຣີເຊັດ, ໃໝ່
ຣີເຊັດໂປເຊດເຊີ. ນີ້ຈະດຶງ PIN ຣີເຊັດຕໍ່າລົງ ແລະເປີດໃຊ້ໂໝດດີບັກຄືນໃໝ່. ກວດສອບ
ເອກະສານ cc1111 ເພື່ອເບິ່ງຊັດເຈນວ່າສິ່ງນີ້ເຮັດຫຍັງ.
ສະຖານະນີ້ຖິ້ມການລົງທະບຽນສະຖານະດີບັກ cc1111.
ຂໍ້ມູນ, i breakpoints, b
ບອກຈຸດຢຸດປະຈຸບັນ.
ຂໍ້ມູນ, ຂ້ອຍຊ່ວຍ, ?
ບອກສິ່ງທີ່ທ່ານສາມາດໄດ້ຮັບຂໍ້ມູນ.
ຢຸດ ນີ້ ບໍ່ ໄດ້ ເຮັດ ຫຍັງ ແລະ ປະ ຈຸ ບັນ ພຽງ ແຕ່ ເພື່ອ ຮັກ ສາ ຄວາມ ເຫມາະ ສົມ ກັບ
ຕົ້ນສະບັບ 8051 emulator.
ສະພາບໍລິຫານ ປະກາດ ກຳ ລັງດີບັກ
ໃນຂະນະທີ່ຈຸດປະສົງຕົ້ນສະບັບສໍາລັບໂຄງການນີ້ແມ່ນເພື່ອເຊື່ອມຕໍ່ debugger ແຫຼ່ງກັບ the
ຮາດແວ, ມັນຍັງສາມາດຖືກນໍາໃຊ້ເປັນ hex debugger ລະດັບຕ່ໍາທັງຫມົດດ້ວຍຕົນເອງ. ໂດຍສະເພາະ,
ອຸປະກອນຕໍ່ພ່ວງ cc1111 ທັງໝົດສາມາດຖືກໝູນໃຊ້ໂດຍກົງຈາກເສັ້ນຄຳສັ່ງ ao-dbg.
ເລີ່ມຕົ້ນ ao-dbg
ທໍາອິດໃຫ້ແນ່ໃຈວ່າອຸປະກອນ cc1111 ເປົ້າຫມາຍແລະກະດານກາງ cp2103 ຫຼື cc111.
ທັງຫມົດແມ່ນຕິດພັນຢ່າງຖືກຕ້ອງ.
$ ao-dbg
ຍິນດີຕ້ອນຮັບສູ່ໂຮງງານຜະລິດທີ່ບໍ່ແມ່ນການຈໍາລອງ
> ສະຖານະ
CPU ຢຸດ
ຢຸດໂດຍຄຳສັ່ງດີບັກ
>
ເປີດໄຟ LEDs
ສອງຂອງ cc1111 GPIO pins, P1_0 ແລະ P1_1 ສາມາດຂັບລົດ LED ພາຍນອກໄດ້. ເຖິງ
ຄວບຄຸມສິ່ງເຫຼົ່ານີ້, ຕັ້ງບິດທິດທາງ Port 1 ເພື່ອເຮັດໃຫ້ pins ຜົນຜະລິດເຫຼົ່ານີ້ແລະຫຼັງຈາກນັ້ນ
ປ່ຽນຂໍ້ມູນ Port 1 ເພື່ອຕັ້ງພວກມັນໃຫ້ສູງ ຫຼືຕໍ່າ:
> ຕັ້ງ sfr 0xfe 0x02 # ຕັ້ງ P1DIR ເປັນ 0x2
> ຕັ້ງ sfr 0x90 0x02 # ຕັ້ງ P1_1 ສູງ
> ຕັ້ງ sfr 0x90 0x00 # ຕັ້ງ P1_1 ຕ່ຳ
ກຳລັງອ່ານຕົວປ່ຽນ A/D
ວັດສະດຸປ້ອນເຄື່ອງແປງ A/D ຫົກອັນສາມາດເຊື່ອມຕໍ່ເຂົ້າກັບ P0 pins ໃດກໍໄດ້, ດິນ,
ການອ້າງອີງແຮງດັນ A/D, ເຊັນເຊີອຸນຫະພູມພາຍໃນ ຫຼື VDD/3. ເພື່ອອ່ານຫນຶ່ງຂອງ
ຄ່າເຫຼົ່ານີ້, ເລືອກຕົວແປງ A/D ເພື່ອໃຊ້ ຈາກນັ້ນເລີ່ມຂະບວນການປ່ຽນ. ໄດ້
cc1111 ຄູ່ມືມີຕາຕະລາງສໍາລັບການເລືອກວັດສະດຸປ້ອນໃນຫນ້າ 144.
ເພື່ອກໍານົດຫນຶ່ງຂອງ P0 pins ສໍາລັບການນໍາໃຊ້ໂດຍຫນ່ວຍງານ A/D, ພວກເຮົາດໍາເນີນໂຄງການ ADCCFG.
ລົງທະບຽນ, ການຕັ້ງຄ່າ bits ໃນທີ່ກົງກັບ pins ທີ່ຕ້ອງການ:
> ຕັ້ງ sfr 0xf2 0x3f # ເປີດໃຊ້ທັງໝົດ 6 A/D inputs
ເພື່ອກະຕຸ້ນການແປງຄັ້ງດຽວ, ພວກເຮົາຂໍໃຫ້ຫນ່ວຍບໍລິການ A/D ດໍາເນີນການ 'ພິເສດ'
ການປ່ຽນໃຈເຫລື້ອມໃສ, ຊຶ່ງຫມາຍຄວາມວ່າຈະເຮັດການປ່ຽນໃຈເຫລື້ອມໃສດຽວບໍ່ແມ່ນລໍາດັບທັງຫມົດຂອງ
ການປ່ຽນແປງ. ອັນນີ້ຖືກຄວບຄຸມໂດຍການລົງທະບຽນ ADCCON3 ທີ່ 0xB6:
> ຕັ້ງ sfr 0xb6 0xb2 # ຕົວຢ່າງ P0_2 ໂດຍໃຊ້ 12 bits ຂອງຄວາມແມ່ນຍໍາ
> ds 0xba 0xbb # dump ຂໍ້ມູນ ADC ຕ່ໍາແລະສູງ regs
> ຕັ້ງ sfr 0xb6 0xbe # ຕົວຢ່າງເຊັນເຊີອຸນຫະພູມພາຍໃນ
> ds 0xba 0xbb # dump ຂໍ້ມູນ ADC ຕ່ໍາແລະສູງ regs
ໃຊ້ ao-dbg ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net