بخشی از مقاله
شبیه سازی یا سیمولاتور
مقدمه :
شبيه سازي ياsimautation : در كامپيوتر معناي تقليد از يك فرآيند فيزيكي يا شيء توسط برنامهاي كه موجب ميشود كامپيوتر به شكل رياضي به دادها و شرايط متغير واكنش نشان دهد چنان كه گويي خود شي يا فرآيند اين واكنش را نشان ميدهد .
مقلد يا emulator : سختافزار يا نرمافزاري است كه نوعي از كامپيوتر يا تجهيزات را وادار ميسازد تا مانند ديگري عمل كند به وسيله مقلد كامپيوتر ميتواند نرمافزاري را كه براي ماشين ديگري نوشته شده اجرا كند. در يك شبكه ريز كامپيوترها ممكن است كامپيوترهاي بزرگ يا ترمينالها را تقليد كنند تا دو ماشين بتوانند با هم ارتباط برقرار كنند.
فصل اول
سميولاتور 2003
مقدمه:
سميولاتور 2003 چيست؟
سميولاتور 2003 شبيهسازي است بر مبناي 51c87/8032/8031/52c87/51c89/52c89/8051/8052 كه بسيار براي كاربران آسان است.
منوها و پنجرههاي شبيه سازي به شما اجازه ميدهد تا سريع و آسان برنامههاي 8052/8051/52c89/51c89/52c87/51c87 را شبيه سازي كند – خطا ها را بگيرد و اشكالات را رفع كند .
شبيه ساز 2003 شامل ويژگيهاي مفيدي است كه قبلاً در شبيه سازيهاي 8052/8051/52c89/51c89/52c87/51c87/8022/8031 مشاهده نشده.
مشخصات سميولاتور 2003:
1-فعال كردن پنجرة نمايش (watch window) و اجازة نمايش location/bit selected حافظه در مبناي hex، دسيمال و Bin، بطوري كه ممكن است شما شخصاً روي requred Location/bit متمركز شويد به جاي پيدا كردن پنجرههاي متفاوت مربوط به آنها.
2-اين شبيه ساز به دقت ساختار وقفه را كه شامل وقفههاي همزمان است به وسيلة قراردادن تعدادي اولويتهاي وقفه شبيهسازي ميكند كه معمولاً در ساير شبيهسازها چشم پوشي ميشود.
3-رفتار فلگهاي TI را به دقت شبيهسازي ميكند كه توسط شبيهسازهاي ديگر فراموش ميشود.
4-ديباگ قدرتمند كه شامل Skip instruction, Time Based, Bulk step single step است.
5-سرعت شبيه سازي قابل تنظيم
6-توانايي براي برداشتن برچسبها از ليست فايلها
7-پنجرة Bit memory كه مستقيماً براي مشاهدة حافظه بيتي است.
8-پنجرة نهايي براي ارتباط سري
9-همة پنجرههاي شبيهسازي قابل تغيير هستند در موقعيت و سايز نمايش بهتر.
10- ذخيرة دستي و اتوماتيك براي ذخيرة موقعيت و سايز پنجرهها
11-History اجرايي دستورالعملها براي مشاهدة 1000 دستورالعمل اخير
12-پنجرة شامل خطاها و اخطارها
13-كد disassembly و توانايي براي ذخيره كردن كد disassembly
14-امكان استفاده Breakpoint
15-پنجرة عمومي Real/write اضافه شده براي خواندن و نوشتن سريع memory location/bit در Active watch window
16-optionهاي راه اندازي مفيد.
17-optionهاي، refresh كردن تنوع براي نيازهاي شما
18-راحتي كار براي استفاده user interfuce
Toolbar سيمولاتور 2003:
Open file: فايلي كه شما ميخواهيد آن را شبيه سازي كنيد باز ميكند. فرمتهاي Support شده intel Hex و bin هستند.
Close file: فايلهاي باز شده را ميبندد.
Get lables form file: اين دستور Lable را به داخل سميلاتور 2003 بارگذاري ميكند. دو فرمت پوشش داده ميشوند. 8051 Cross Assembler فايل برچسب توليد ميكند و Pseudo sam Assembler فايلها را توليد ميكند. وقتي اين دستور را اجرا ميكنيد پنجرهاي باز ميشود كه ميتواند فايل برچسبها را انتخاب و با زدن Open برچسبها Laud شوند.
Open Simulation: اين دستور اين اجازه را به شما ميدهد كه به شبيهسازي ذخيره شده خودتان برگرديد.
هنگاميكه اين دستور اجرا ميشود پنجرهاي نمايش داده ميشود تا فايل خودتان انتخاب كنيد.
Save simulation: اين دستور اين اجازه را به شما ميدهد كه كارتان را ذخيره كنيد و دوباره آن را بازكنيد در هر زماني با استفاده از Open Simulation، اين دستور حافظه برنامه، همة ثباتهاي SFR، RAM داخلي و RAM خارجي، موقعيت پنجرههاي بازشده و سايزها را ذخيره ميكند. اين دستور خيلي مفيد است هنگامي كه شما در حال شبيهسازي برنامهاي هستيد و برنامة ديگري وقفه ايجاد ميكند. شما ممكن است برنامة خودتان را Save كرده باشيد و بعداً در زمان ديگري آن را restore كنيد.
Previously Opened Files list: سميلاتور 2003 ليست 10 فايل بازشدة قبلي را نگه ميدارد. بطوري كه شما ميتوانيد سريعاً هر برنامة باز شده قبلي را باز كنيد.
روي نام فايل كليك و آن را باز كنيد. براي شروع شبيهسازي، اگر برنامهاي در حال حاضر باز باشد، بسته ميشود و برنامهاي كه روي آن كليك كرديد باز ميشود.
Exit: Exit ميشويد از سميلاتور 2003
Execution:
Start / stop Execution: تبديل ميكند اجراي شبيه سازي را هنگامي كه اجرا نگه داشته ميشود، شروع ميكند اجرا را و هنگاميكه اجرا در حال پيشرفت كردن است، اجرا را نگه ميدارد. بعضي از پارامترهاي كنترلي اجرا از قبيل شمارة دستورالعمل Butch. Refersh type، و سرعت شبيهسازي.
Reset enecation: برنامه را reset ميكند. Pc با صفر راهاندازي ميشود و مقادير پيش فرض در ثبات SFR داخلي و RAM خارجي Load ميشود.
View: قابليت ديد پنجرههاي شبيهسازي را تبديل ميكند. 9 پنجرة شبيهسازي وجود دارد كه در پائين شرح داده ميشود:
(SFRs) Special Function register: اين پنجره مقادير (SFRs) Special Function register را در فرمت Hex و فلگهاي ميكروكنترلر را نشان ميدهد.
اگر كه ميخواهيد مقادير ثباتها را تغيير دهيد روي edit box خودش دوبار كليك كنيد.
يك General write window نمايش داده ميشود كه به شما اجازه ميدهد تا با استفاده از Hex دسيمال يا Binمقادير را تغيير دهيد.
فلگهاي ميكروكنترلر نيز در پنجرة SFR مشاهده ميشود. رنگ آبي به معني مرحلة صفر و رنگ قرمز به معني مرحلة 1 است. به منظور تغيير مقادير فلگها روي فلگهايي كه ميخواهيد دوبار كليك كنيد. يك پنجرة Write مشاهده ميشود براي اينكه شما بتوانيد به راحتي مقادير را تغيير دهيد.
Internal RAM
RAM داخلي، (هم بالاتر و هم پائينتر) را نمايش ميدهد.
روي هر كدام از خانههاي اين پنجره دوبار كليك كنيد ميتوانيد مقدار آن را در Write window تغيير دهيد.
External RAM
RAM خارجي را نمايش ميدهد.
Bit memory: حافظة بيتي را بصورت زير نشان ميدهد.
با دوبار كليك روي هر كدام از خانهها با كمك General write window ميتوانيد ارزش مقادير را تغيير دهيد. ستون سمت چپ آدرس بيتي مطلق و آدرس منطقي بايتي را نشان ميدهد. آدرس بيتي مطلق 7 آدرس منطقي بايتي 260H.7 دارد.
Active watch:
يكي از قويترين مشخصات سميولاتور 2003 Active watch window است. در طول شبيهسازي، به طور معمول كار بر روي تعدادي ثباتهاي بيتي كار ميكند. به جاي پيدا كردن آنها در پنجرههاي مختلف Active watch window اجازه ميدهد به كاربر تا تنها روي ثباتهاي بيتي انتخاب شده تمركز كند بطوري كه اينها به آساني قابل دسترسي هستند.
اين نه تنها مقادير ثباتهاي بيتي انتخاب شده را در 3 فرمت نشان ميدهد بلكه به شما اجازه ميدهد تا سريعاً مقادير آنها را ويرايش كنيد.
در نوع uregiterad شما بيش از 5 آيتم را نميتواند به Active watch window اضافه كنيد. ولي اگر Unregister نباشد اين محدوديت وجود ندارد.
نوار ابزار دكمه بصورت زير است:
Add Item: اين گزينه به شما اجازه ميدهد تا آيتمها را به Active watch window اضافه كنيد. هنگامي كه شما روي آن كليك ميكنيد Add to Active watch window نمايش داده ميشود.
type را از 5 نوع موجود انتخاب كنيد: (SFR Register/SFR Bits / Internal RAM/Enternal RAM, Bit memory هنگامي كه شما تايپ را انتخاب ميكنيد آيتمهاي آن خود به خود در Name/Addres Load ميشود. آيتمي كه ميخواهيد تا اضافه كنيد را انتخاب و كليك Add Button را كليك كنيد و بعد Ok را بزنيد.
Remove itemo:
آيتمي كه ميخواهيد برداريد را انتخاب و اين دكمه را بزنيد تا آيتم انتخاب شده را حذف كند.
Delete all items:
اگر روي آن كليك كنيد همة آيتمها از ليست برداشته ميشود.
Execution status window:
اين پنجره اطلاعات مفيدي را در مورد اجراي شبيهسازي نشان ميدهد.
شبيهساز 2003 ركورد 10000 دستورالعمل اجرا شده آخر را نگه ميدارد.
هنگامي كه دستورالعمل اجرا شده از 10000 تا بيشتر شد پاك ميشود.
با دو بار كليك روي Pc از Genral write window تقاضا ميكند براي ويرايش مقدار PC
Terminal window
Terminal window: سرعت باود رسيدن و انتقال را در ميان انتقال / رسيدن كاراكترها را بصورت زير نمايش ميدهد.
Trunsmit Byte:
اين به شما اجازه ميدهد بايتها را داخل Buff بنويسيد و انتقال سري را شبيهسازي كنيد. هنگامي كه شما اين دكمه را فشار دهيد بايتها را داخل پنجرة نمايش پورت سريال ميفرستيد.
مقادير كه ميخواهيد تا در Sbuff نوشته شود را بنويسيه و روي Send كليك كنيد تا انتقال سري شروع شود.
مشخصة قدرتمند ديگر شبيهساز 2003 اينست كه به دقت رفتار ميكرو كنترلر را با Seting TI شبيهسازي ميكند و بطوري كه يك بايت كامل فرستاده خواهد شد. براساس سرعت باود انتخاب شده است.
توجه: انتقال سري جاري تنها هنگامي شبيهسازي خواهد شد كه مقدار را در SBUF بنويسيد و Send كنيد به پنجرة Serial port و يا بوسيلة دستور: Mov SBUF, A instruction
-Clear Transimt Buffer
هنگامي كه شما اين دكمه را كليك ميكنيد Transmit buffer پاك ميشود.
-Clear Receive Buffer
هرگاه يك بايت از SBUF با دستور Mov A, SBUT خوانده ميشود آن به receive Buffer منتقل ميشود.
هنگامي كه شما روي اين دكمه كليك ميكنيد receve buffer پاك ميشود.
-Manual Refresh
روي اين دكمه كليك كنيد تا بطور دستي پنجرة ترمينال بروز رساني شود.
Warnings
Warnings مواجه شده در طول شبيهسازي را نمايش ميدهد.
Toolbar آن بصورت زير است:
1-Marnalrefresh
بطور دستي پنجره و warning را بروز رساني ميكند.
2-Clear list
ليست Warning را پاك ميكند.
Errors
Error مواجه شده در طول شبيه سازي را نمايش ميدهد.
طول بار را بصورت زير است:
1-Monnal Refrsh
پنجره error را بطور دستي بروزرساني ميكند.
2-Clear list
ليست error را پاك ميكند.
Debugging
1-Single step(f2): يك دستور را اجرا ميكند.
2-Bulk step(f3): قسمت بزرگي از دستورات را اجرا ميكند به صورت مشخص شده بوسيله Bulk step count در setting شبيه سازي.
3-Time Base(f4)
اين يك مد debug كردن مفيد است كه دستورالعملها را براساس زمان اجرا ميكند.
هنگامي كه شما از اين مد استفاده ميكنيم سميولاتور 2003 مرحلة زمان را به كار ميبرد همانطور كه شما در Setting شبيه سازي مشخص گرديد و محاسبه ميكند كه چه تعداد دستورالعمل را بايد اجرا كند و سپس آن تعداد دستورالعمل را اجرا ميكند.
4-Skip instraction: از دستورالعمل جاري ميپرد و Pc را به دستورالعمل بعدي ميبرد.
5-Stop dqugging: ديباگ كردن را متوقف ميكند هنگامي كه Bulk step يا time based debugging در جريان است بدون منتظر شدن براي اينها تا كامل شود.
Deussembly؛
Disasrembly code
يكي از ويژگيهاي قدرتمند سميولاتور 2003 اينست كه به شما اجازه ميدهد تا عمل disass emble كه disassembled شامل خيلي اطلاعات مفيد مثل شمارة خط، آدرس، label، دستورالعمل و cycle كه بصورت زير نشان داده شده است.
اولين ستون براي break point است. هنگامي كه شما روي آن كليك ميكنيد. Break point راه اندازي ميشود اگر خط جاري به عنوان Break point علامت نخورده باشد. به عنوان break piont روش ديگري براي اضافه كردن Break point وجود دارد كه به طور خلاصه شرح داده خواهد شد.
Save code button
هنگامي كه شما روي اين دكمه كليك ميكنيد يك پنجره باز خواهد د كه از شما ميخواهد تا نام كامل فايل (همراه با مسير) را وارد كنيد كه كد تبديل شده به زبان اسمبلي ذخيره خواهد شد.
نام فايل را وارد ورودي Ok كليك كنيد تا كد تبديل شده به زبان اسمبلي ذخيره شود.
Ok button: هنگامي كه شما روي اين دكمه كليك كنيد تغييراتي كه شما در Break piont ايجاد كرديد ذخيره نميشود و
Break Opints
هنگامي كه يك آدرس به عنوان Break point علامت ميخورد، در طول اجرا هنگامي كه با اين آدرس روبرو شد، اجرا متوقف ميشود. پنجرة Break point يك راه اضافه كردن و برداشتن Break point
همچنين با كمك پنجرة Disasemble نيز ميتوانيد اين كار را انجام دهيد.
هنگامي كه شما روي اين كليك كنيد پنجرة Break point نمايش داده خواهد شد كه به شما اجازه ميدهد به آساني Add، Delete يا delete كنيد.
هنگامي كه شما روي Add كليك ميكنيد پنجرة Break point نشان داده خواهد شد. آدرس Break point (در Hex يا دسيمال) وارد كنيد و Ok را فشار دهيد تا آن آدرس به عنوان Break point علامت بخورد. Break point اضافه شده در ليست نشان داده خواهد شد.
هنگامي كه شما روي Ok در پنجره Break point كليك كنيد تغييراتي كه در Break point ايجاد كرديد ذخيره و پنجره بسته خواهد شد. هنگامي كه شما روي cancel كليك كنيد تغييراتي كه در ليست Break point ايجاد كرديد ذخيره نخواهد شد و پنجره بسته خواهد شد.