نمایش نتایج 1 تا 15 از 15

نام تاپیک: نوشتن برنامه برای سخت افزار

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    ایلخچی
    پست
    53

    Question نوشتن برنامه برای سخت افزار

    سلام
    ببخشین می خواستم ببینم که میشه با دلفی برای سخت افزار برنامه نوشت؟
    اگه که میشه راهنمایی بفرمایید و اگه هم نمیشه میدونین با کدوم زبان میشه اینکار رو انجام داد

    متشکرم

  2. #2

    نقل قول: نوشتن برنامه برای سخت افزار

    سلام،
    اول باید دقیقتر توضیح بدین که منظورتون از "برای سخت افزار" چیه؟
    کار با پورتها یا ساخت درایور و یا سیستم های Embedded ؟

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    ایلخچی
    پست
    53

    نقل قول: نوشتن برنامه برای سخت افزار

    ساخت درایور برای سخت افزار و رد و بدل کردن اطلاعات بین نرم افزار و سخت افزار

  4. #4

    نقل قول: نوشتن برنامه برای سخت افزار

    نقل قول نوشته شده توسط morteza147 مشاهده تاپیک
    ساخت درایور برای سخت افزار و رد و بدل کردن اطلاعات بین نرم افزار و سخت افزار
    برای درایور نویسی باید C بلد باشی
    Delphi با زبون خوش چنین کاری نمیکنه باید با Meerkat کار کنی که برای کارهایی کوچیک مناسبه Sampleهم داره.
    Everything that has a beginning has an end. ... The End?



  5. #5
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    ایلخچی
    پست
    53

    نقل قول: نوشتن برنامه برای سخت افزار

    C++‎,C رو که بلدم اما نمیدونم از کجا شروع کنم از چه نرم افزاری برای اینکار استفاده کنم

  6. #6

    نقل قول: نوشتن برنامه برای سخت افزار

    نقل قول نوشته شده توسط morteza147 مشاهده تاپیک
    C++‎,C رو که بلدم اما نمیدونم از کجا شروع کنم از چه نرم افزاری برای اینکار استفاده کنم
    اگه بخوای حرفه ای کار کنی باید چیزای بیشتری بدونی :
    کتاب های زیر باید بخونی :

    • Programming.the.Microsoft.Windows.Driver.Model
    • Windows Internals


    توی این وبلاگ توضیح داده
    درایور نویسی

    اینم یه فیلمه


    اینم یه سایت عالی


    اینم از من داشته باش
    visualddk.sysprogs.org/
    کارتو راحت میکنه (توی VS)
    Everything that has a beginning has an end. ... The End?



  7. #7

    نقل قول: نوشتن برنامه برای سخت افزار

    با عرض سلام، دوستان لینک فیلم تو وبلاگم مشکل داشت ولی لینک رو اصلاح کردم، بد نیست منم یه نظری بدم: به نظر من بهتره ابتدا کتاب های زیر رو به ترتیب بخونید تا خیلی خوب ویندوز و یا به قولی سیستم عامل رو درک کنید بعد از اون می تونید بزنید تو کار درایور نویسی :

    اول کتاب Windows Internals Part1,Part2 که واقعا دل و روده ی ویندوز رو میریزه بیرون(حدود 800+700=1500 صفه)
    دوم برای شروع درایور نویسی بهترین کتاب موجود Rootkit Arsenal هست که ساده ترین درایوری که میشه نوشت رو توضیح داده(حدود 1000 صفه)

    البته اساتید بهتر میدونن که برای درایور نویسی کتاب کم پیدا میشه چون مبحثی نیست که بشه تو یکی دو تا کتاب کنجوند و بیشتر از Documentation استفاده میشه ولی برای شروع همین دو تا کتابی که ذکر شد خیلی خیلی میتونن مفید باشن.
    موفق باشید

  8. #8
    کاربر دائمی آواتار MSK
    تاریخ عضویت
    تیر 1383
    محل زندگی
    فعلا تهران - بعدا خدا می‌دونه!
    پست
    331

    نقل قول: نوشتن برنامه برای سخت افزار

    روش استاندارد برای درایور نوشتن و کار با سخت‌افزار WDK هستش که مبتنی بر windows api هست. یعنی با delphi هم میتونید با سخت‌افزار کار کنید. باید wdk رو از سایت مایکروسافت دانلود کنید و مثالهاش رو بخونید و خودتون اونها رو به delphi تبدیل کنید.
    لینک دانلود wdk این هست: http://msdn.microsoft.com/en-us/libr.../gg487428.aspx

  9. #9

    نقل قول: نوشتن برنامه برای سخت افزار

    هستش که مبتنی بر windows api هست
    تا جایی که من میدونم Windows API کلاً تویه user-mode هستن و برای Kernel-Mode از system callها استفاده میشه.

    Windows Internals :

    The Windows application programming interface (API) is the user-mode system programming
    interface to the Windows operating system family.


    یعنی با delphi هم میتونید با سخت‌افزار کار کنید
    فکر نکنم WDK به Delphi ربطی داشته باشه ها...
    توی Delphi با ایزارهایی مثل Meerkat باید کار کنید که اونا هم در پشت پرده خودشون با ابزارهای Microsoft کار میکنن چون دلفی فقط برنامه های User-Mode تولید میکنه و برای درایور نویسی باید برنامه هامون توی Kernel-Mode اجرا بشن ، خلاصه این که با Delphi (در حالت عادی) نمیشه
    Everything that has a beginning has an end. ... The End?



  10. #10
    کاربر دائمی آواتار Ananas
    تاریخ عضویت
    آبان 1390
    محل زندگی
    طول 50 و عرض 34 درجه
    سن
    36
    پست
    894

    نقل قول: نوشتن برنامه برای سخت افزار

    DirectX








    .

  11. #11

    نقل قول: نوشتن برنامه برای سخت افزار

    نقل قول نوشته شده توسط Ananas مشاهده تاپیک
    DirectX








    .
    منظورت چیه؟
    Everything that has a beginning has an end. ... The End?



  12. #12
    کاربر دائمی آواتار MSK
    تاریخ عضویت
    تیر 1383
    محل زندگی
    فعلا تهران - بعدا خدا می‌دونه!
    پست
    331

    نقل قول: نوشتن برنامه برای سخت افزار

    تا جایی که من میدونم Windows API کلاً تویه user-mode هستن و برای Kernel-Mode از system callها استفاده میشه.

    Windows Internals :
    فکر نکنم WDK به Delphi ربطی داشته باشه ها...
    توی Delphi با ایزارهایی مثل Meerkat باید کار کنید که اونا هم در پشت پرده خودشون با ابزارهای Microsoft کار میکنن چون دلفی فقط برنامه های User-Mode تولید میکنه و برای درایور نویسی باید برنامه هامون توی Kernel-Mode اجرا بشن ، خلاصه این که با Delphi (در حالت عادی) نمیشه
    بله؛ کاملا حق با شماست در مورد تفاوت api و system call . و من هم نمی دونستم که delphi امکان تولید برنامه های kernel-mode رو نداره.
    اما شاید اینجا جا داشته باشه که بگم که من خودم با delphi کار نمی کنم و بجاش از FPC استفاده می کنم که معادل متن باز delphi هست و اتفاقا امکان تولید باینری های kernel mode رو هم داره:


    بنابر این شما هم شاید ترجیح بدید که از fpc استفاده کنید به همراه wdk.
    آخرین ویرایش به وسیله بهروز عباسی : پنج شنبه 07 آذر 1392 در 23:12 عصر

  13. #13

    نقل قول: نوشتن برنامه برای سخت افزار

    با اینکه مدتی از این بحث گذشته ، ولی امروز این مطلب رو دیدم جالب بود .

    Can I write Windows drivers with Delphi 2010?
    Everything that has a beginning has an end. ... The End?



  14. #14

    نقل قول: نوشتن برنامه برای سخت افزار

    سلام به همه
    اگه ممکنه کم در مورد تفاوت کرنل-مد و یوزر-مد توضیح بدید و این که چرا دلفی نمی تونه این کدهای کرنل مد رو خودش تولید کنه منظورم به صورت پیشفرضه.
    (راستش شاید این سوال کلاً به این بخش مربوط نباشه ولی خب دیدم بحث خوب پیشرفته.)
    با تشکر

  15. #15

    نقل قول: نوشتن برنامه برای سخت افزار

    در مورد تفاوت کرنل-مد و یوزر-مد توضیح بدید
    راستش مدتی قبل داشتم یه مقاله در این باره می نوشتم خوردم به امتحانات نصفه موند (می ذارم اینجا ) ولی فکر کنم بدک نباشه :(اگه بود شما ببخش)

    ممکن شما این کلمات را شنیده باشید ، Kernel-Mode یا User-Mode . آیا تا به حال به معنای آن هادر دنیای کامپیوتر و برنامه نویسی فکر کرده اید ؟ میدانید تفاوت آن ها چیست؟ کدام یک بهتر است ؟
    هم Kernel-Mode و هم User-Mode سطوح دسترسی هستند که هر کدام ویژگی ها و اهداف خاص خود را دارند این سطوح هم به صورت نرم افزاری و هم به صورت سخت افزاری پیاده سازی می شوند، مهم ترین هدف ازایجاد این لایه ها ،امنیت است !بله امنیت.
    شما در شکل زیر (شکل سمت چپ) ساختار لایه لایه ای را مشاهده میکنید که با رنگ ها و نوشته های مختلفی از هم جدا شده اند این لایه ها که از این پس آن ها را حلقه ( Ring )می نامیم همان سطوح دسترسی هستند که داخلی ترین حلقه همان Kernel-Mode و حلقه های بیرونی User-Mode است (شکل سمت راست).
    U_K.jpg

    همانطور که گفته شد این حلقه ها به صورت سخت افزار ی هم پیاده سازی می شوند ،پردازنده های Intel چهار حلقه را در خود دارند ولی ویندوز به خاطر پشتیبانی از مدل های خاص سخت افزار که هر چهارحلقه را دارا نبوده اندتنها از دو حلقه در معماری خود استفاده میکند Ring 0 و Ring 3 در این معماری هر چه به حلقه های داخلی تر میرویم قدرت بیشتری در در کنترل سیستم و دسترسی به منابع داریم و هر چه از حلقههای داخلی دور تر می شویم قدرت کمتری در کنترل سیستم و دسترسی به منابع داریم.
    در کرنل مد شما قادر به انجام هر کاری هستید (به عنوان برنامه نویس) چون امتیازی برابر باهسته سیستم عامل دارید ولی در یوزر مد چنین نیست ؛شما اجازه برقراری مستقیم ارتباط با سخت افزار را ندارید، اجازه دسترسی به حافظه فیزیکی RAM و تغییر آن را ندارید و بسیاری محدودیت های دیگر .
    حتما تا اینجای کار متوجه تفاوت این دو حلقه شده اید !منظورم امتیازاتی است که در کنترل سیستم دارند ؛قدرت و امتیاز زیاد Ring0 و قدرت و امتیاز کم Ring3 و شکاف بین این دو این تفاوت همان امنیتی است که در ابتدا گفتم.
    ویندوز با این کار بخش های مختلف خود را ایزوله کرده ،هسته و ماژول های حیاتی خود را در Ring0 با بالاترین سطح دستری قرار داده و برنامه های معمولی کاربران را در Ring3 با کمترین سطح دسترسی قرار داده. شاید با خود فکر کنید که این کارباعث افت کارایی برنامه های کاربر و درنتیجه افت بازدهی کل سیستم می شود.
    فکر کنیم چنین است !
    اگر شما به اندازه انگشتات دست خود برنامه نوشته باشید حتماً متوجه رفتار غیر عادی برخی برنامه ها و کرش شدنشان شده اید. اگر یک برنامه عادی مثلاً Notepad دچار مشکلات آدرس دهی یا ... شود در بدترین حالت
    خوش کرش میکند و بسته می شود ولی سیستم عامل چه ؟آیا دچار مشکل می شود ؟؟؟ حالا فرض کنید هم برنامه Notepad و هم هسته ویندوز از یک ناحیه ادرس دهی مشترک در حافظه استفاده می کردند و خراب کاری های Notepad آدرس دهی های سیستم عامل را به هم میزد نتیجه چه بود ؟؟؟ هر بار برنامه ای خراب کاری می کرد سیستم عامل کتلت می شد .
    اما به لطف به این ایزوله سازی چنین مشکلاتی رخ نم دهد پس اگر احتمال به افت کارایی هم بدهیم ارزشش را دارد.

    نحوه پیاده سازی در ویندوز
    در نسخه x86 ویندوز هر پردازش ) Process ( از یک حالت Flat memory در بازه 00000000 تا FFFFFFFF استفاده مکیند( 4گیگابایت میشه )که نمیه پایینی حافظه ؛یعنی از 00000000 تا 7FFFFFFF
    (2گیگابایت)برای کد های User-Mode رزرو شده و نیمه بالایی یعنی از 00000000 تا FFFFFFFF هم برای کدهای Kernel-Mode رزور شده .
    درواقع اون 4گیگابایت حافظه مجازی به دوبخش بالا و پایین تقسیم میشه (میشه برای افزایش کارایی سیستم های 32 بیتی فضای User-Mode رو تا 3 گیگابایت هم افزایش داد) هر چی تو نمیمه بالایی باشه Kernel-Mode و هرچی توی نمیمه پایینی حافظه باشه User-Mode میشه . و توی سیستم های 64 بیتی هم اون حافظه مجازی از 4گیگابایت به 8ترابایت افزایش پیدا کرده و بازم مثل 22 بیتی دو تکه شده و ... (البته این ساده ترین تعریف بود )و اگر پردازش قصد دست درازی به حافظه Kernel رو داشته باشه ازطرف سیستم عامل باهاش برخورد میشه .


    اگه همون کتاب Microsoft Windows Internals رو بخونی به بهترین شکل توضیح داده.
    چرا دلفی نمی تونه این کدهای کرنل مد رو خودش تولید کنه منظورم به صورت پیشفرضه.
    لینکی که توی پست قبلیم دادم همینو توضیح داده .

    امید وارم مطالب گفته شده مفید واقع بشه.
    موفق باشید.
    Everything that has a beginning has an end. ... The End?



تاپیک های مشابه

  1. گفتگو: چگونگی برنامه نویسی برای سخت افزار
    نوشته شده توسط ashe405 در بخش C#‎‎
    پاسخ: 5
    آخرین پست: یک شنبه 11 فروردین 1392, 14:04 عصر
  2. مبتدی: برنامه نویسی وی بی برای سخت افزار و الکترونیک
    نوشته شده توسط sajjad_india در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: شنبه 17 بهمن 1388, 00:03 صبح
  3. نوشتن کلاس برای سخت افزار در vb.net
    نوشته شده توسط pantea_l62 در بخش VB.NET
    پاسخ: 1
    آخرین پست: یک شنبه 17 مهر 1384, 05:51 صبح
  4. نحوه برنامه نویسی برای سخت افزار در vb
    نوشته شده توسط sadegi در بخش برنامه نویسی در 6 VB
    پاسخ: 10
    آخرین پست: پنج شنبه 29 اردیبهشت 1384, 11:38 صبح
  5. درخواست یک مبحث جدید برای برنامه نویسی برای سخت افزار
    نوشته شده توسط nasser_attarzadeh در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 1
    آخرین پست: یک شنبه 14 فروردین 1384, 19:55 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •