اطلاعیه

Collapse
No announcement yet.

پاسخگویی به سئوالات شما در مورد WINCE

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخگویی به سئوالات شما در مورد WINCE

    سلام

    من بعد از مدتها برگشتم به انجمن. هر کس هر سئوالی در مورد موارد زیر داره می تونه بپرسه.
    ARM9
    ARM11
    S3C6410
    WIN CE

    موفق باشید
    http://embeddedelectronics.ir

    #2
    پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

    سلام .من سوال زیاد دارم.هرجاشو بتونید توضیح بدید ممنون میشم
    من توسط سایت زیر درایور gpio رو برای wince6 کامپایل و برنامشو با موفقیت run کردم.حالا سوالام اینه
    http://www.domodom.fr/spip/A-GPIO-driver-for-mini2440.html?lang=fr
    1-چه طوری درایورش برای ویندوز نوشته
    2- این کدا اول برنامه چیکار میکنن(توی برنامه vb میگم نه #c(
    کد:
    Imports System.Runtime.InteropServices
    
    Public Class Form1
      Private Const IOCTL_GPIO_SET_PIN_CONFIGURATION As Integer = 262144
      Private Const IOCTL_GPIO_SET_PIN_OUTPUT_VALUE As Integer = 262148
      Private Const IOCTL_GPIO_GET_PIN_INPUT_VALUE As Integer = 262152
    
      Dim bytePtr As IntPtr
    
      Friend Enum GPIO_PORT As Integer
        PORT_A = 0
        PORT_B = 1
        PORT_C = 2
        PORT_D = 3
        PORT_E = 4
        PORT_F = 5
        PORT_G = 6
        PORT_H = 7
        PORT_I = 8
        PORT_J = 9
      End Enum
    
      Friend Enum GPIO_PIN_CONFIGURATION As Integer
        OUTPUT = 0
        INPUT_WITH_PULLUP = 1
        INPUT_WITHOUT_PULLUP = 2
      End Enum
    
      Friend Enum GPIO_PIN_VALUE As Integer
        LOW = 0
        HIGH = 1
      End Enum
    
      <StructLayout(LayoutKind.Explicit)> _
        Friend Structure GPIO_SET_PIN_CONFIGURATION
        <FieldOffset(0)> Public portNumber As GPIO_PORT
        <FieldOffset(4)> Public pinNumber As Integer
        <FieldOffset(8)> Public pinConfiguration As GPIO_PIN_CONFIGURATION
        <FieldOffset(12)> Public pinValue As GPIO_PIN_VALUE
      End Structure
    
      <StructLayout(LayoutKind.Explicit)> _
        Friend Structure GPIO_SET_PIN_OUTPUT_VALUE
        <FieldOffset(0)> Public portNumber As GPIO_PORT
        <FieldOffset(4)> Public pinNumber As Integer
        <FieldOffset(8)> Public pinValue As GPIO_PIN_VALUE
      End Structure
    
      <StructLayout(LayoutKind.Explicit)> _
        Friend Structure GPIO_GET_PIN_OUTPUT_VALUE
        <FieldOffset(0)> Public portNumber As GPIO_PORT
        <FieldOffset(4)> Public pinNumber As Integer
        <FieldOffset(8)> Public pinValue As GPIO_PIN_VALUE
      End Structure
    
    
      <DllImport("coredll.dll")> _
      Public Shared Function DeviceIoControl(ByVal hDevice As Integer, ByVal dwIoControlCode As Integer, ByVal lpInBuffer As IntPtr, ByVal nInBufferSize As Integer, ByVal lpOutBuffer As Byte(), ByVal nOutBufferSize As Integer, ByRef lpBytesReturned As Integer, ByVal lpOverlapped As IntPtr) As Integer
      End Function
    
      <DllImport("coredll.dll")> _
      Public Shared Function CreateFile(ByVal lpFileName As String, ByVal dwDesiredAccess As UInteger, ByVal dwShareMode As UInteger, ByVal lpSecurityAttributes As IntPtr, ByVal dwCreationDisposition As UInteger, ByVal dwFlagsAndAttributes As UInteger, ByVal hTemplateFile As IntPtr) As IntPtr
      End Function
    
      Private Shared _gpioFile As IntPtr = CreateFile("GPI0:", &H40000000, 0, IntPtr.Zero, 3, 0, IntPtr.Zero)

    دیدگاه


      #3
      پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

      سلام

      بببین برای درست یاد گرفتن WinCE بایستی اول الکترونیک دیجیتال رو خوب بدونی، دوم بایستی به ARM7 مسلط باشی و سوم ++C رو خیلی خوب بدونی و در نهایت با مفاهیم سیستم عامل کاملا آشنا باشی. اگر اینها را ندونی همواره سر در گم خواهی بود. کسی می تونه WINCE رو خوب یاد بگیره که مهندس الکترونیک خوب و مهندس نرم افزار خوبتری باشه.

      اما جواب سئوال اول و دومت اینکه درایور نویسی برای هر پردازنده ای مستلزمه تسلط به دیتا شیت آی سی هست. برای نمونه همین درایور GPIO رو اگر برای آشنایی با درایور نویسی مطالعه کنی مناسب است. بصورت خیلی کلی بخواهم توضیح بدم اینکه برای هر واحد سخت افزاری ریجستر های سخت افزاری وجود دارد که با تنظیم کردن اونها می توانید به آن واحد دسترسی داشته باشید. در حالت کلی درایور نویسی در وهله اول مانند برنامه نویسی برای یک AVR با زبان C است.
      وقتی ریجتسر های اولیه رو تنظیم کردی می تونی از یکسری تابع استفاده کنی که وسیله ارتباط با سطح سیستم می باشند که به توابع API معروفند. شما با استفاده از این توابع در سطح سیستم عامل، می توانی در سطح پایین هر کاری رو انجام بدهی. مثلا نوع یک پین رو اعم از ورودی یا خروجی بودن و ... تغییر بدهی یا وضعیت اون پین رو بخونی یا تغییر دهی.

      CreateFile: تابع API است که با استفاده از آن می تونی درایورت رو باز و لود می کنی.
      DeviceIoControl: تابع API است که با استفاده از پارامترهای آن می تونی ریجستر ها رو تغییر بدهی.
      موفق باشید
      http://embeddedelectronics.ir

      دیدگاه


        #4
        پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

        سلام
        جناب مصلح راد میشه اگه امکان داره در مورد S3C6410 یکم راهنماییم کنید.
        خیلی به کمک نیاز دارم
        ممنون

        دیدگاه


          #5
          پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

          سلام

          اجازه بده من این رو توضیح بدهم تا برای همه به عنوان ابتدایی ترین مسئله در این زمینه یکبار درست جا بیفته.
          مثلا چطور میشه یک نفر میاد یک برد Devlopment می سازه.
          فرض کنید شما یه برد خریدید. این برد چه مراحلی رو گذرونده از ابتدا تا به دست شما برسه. درک این موضوع خیل مهمه. اینکه یه عده ای می گن من یه آی سی ARM رو دارم و می خواهم خودم همه چی رو براش بنویسم، چرا می گم نمی شه (البته الزاما غیر ممکن نیست).
          مثلا همین S3C6410 که محصول کمپانی سامسونگ است به چه ترتیب است. سامسونگ میاد برای تولید این چیپ یک معماری رو بر اساس نیازش انتخاب می کنه که برای این چیپ معماریه ARM1176ZJF است. (همین جاست که فرکانس کاری چیپ مشخص می شه). بعد میاد یک سری واحد ها رو در چیپش به تعداد دلخواه پیاده سازی می کند مثلا یک تعدادی تایمر، یک تعدادی ADC، یک تعدادی .... . بعد با کمپانی ARM قرار داد می بنده و License این معماری رو به یک ترتیبی خریداری می کند که مثلا بابت تولید هر یک از این چیپ ها یه مبلغی به کمپانی ARM پرداخت می کند. بعد سامسونگ میاد یک BSP باتوجه به واحد هایی که در این چیپ قرار داده می نویسه.
          BSP: Board Support Packages
          و بعد پیشنهاد می ده که چه چیپ های واسطی هم در بیرون این آی سی استفاه کنید. مثلا چیپ راه انداز صدا چی باشه و برای اونها هم یک سری کد می نویسه.
          در نهایت یکی پیدا می شه یک برد Development می سازه و این S3C6410 رو اون قرار می دهد و اون چیپ های واسط رو هم همینطور.
          و یکسری درایور می نویسه برای این برد و یه OS روش Build می کنه و چند تا کد نمونه می گذاره و ... . که باقیش کاملا مشخصه.
          البته من خیلی خلاصه گفتم چرا که از حوصلم خارجه. با نوشتن نمی شه همه چی رو گفت.
          موفق باشید
          http://embeddedelectronics.ir

          دیدگاه


            #6
            پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

            سلام دوست عزیز
            ی چند تا سوال داشتم :
            من شنیدم که روی برد 6410 سایت 5 تا دی وی دی هست نمیشه این ها رو جداگونه از جایی تهیه کرد؟ سایت نداره خودش؟ چون دی وی دی هاش خیلی توپ بودن و البته آموزش هاش هم فارسی هستن!!!!
            دارم کتاب برنامه نویسی win ce میخونم چند جا رو نفهمیدم!! :
            منظورش از BSP چیه؟ چجوری میشه اون رو ساخت؟
            آیا ما میتونیم بسازیم؟ بدرد چی میخوره؟ خوندم ولی نفهمیدم.البته ترجمه نمیخواما، مفهومش رو میخوام.
            Third Party چیه؟
            OAL چیه؟ چجوری ساخته میشه؟
            اینا باشن تا بعد. :applause:
            ممنون از لطفت

            دیدگاه


              #7
              پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

              چی شد پس؟ :angry:
              راستی environment variable چیه؟
              چرا اینقد روی این عبارت تاکید میکنن؟
              منظورشون چیه؟
              جکاربردی دارن؟
              ممنون عزیز :nice:

              دیدگاه


                #8
                پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

                نوشته اصلی توسط mos74ph4
                سلام دوست عزیز
                ی چند تا سوال داشتم :
                من شنیدم که روی برد 6410 سایت 5 تا دی وی دی هست نمیشه این ها رو جداگونه از جایی تهیه کرد؟ سایت نداره خودش؟ چون دی وی دی هاش خیلی توپ بودن و البته آموزش هاش هم فارسی هستن!!!!
                دارم کتاب برنامه نویسی win ce میخونم چند جا رو نفهمیدم!! :
                منظورش از BSP چیه؟ چجوری میشه اون رو ساخت؟
                آیا ما میتونیم بسازیم؟ بدرد چی میخوره؟ خوندم ولی نفهمیدم.البته ترجمه نمیخواما، مفهومش رو میخوام.
                Third Party چیه؟
                OAL چیه؟ چجوری ساخته میشه؟
                اینا باشن تا بعد. :applause:
                ممنون از لطفت
                سلام

                راستش من توضیحات فارسی جایی برای WinCE ندیدم. لیکن مقداری مطالب فازسی تو سایت esys.ir است. منتها هر چند که به صورت تیتر وار خوب هستند ولی کافی نیستند و سر فصل ها و مطالب کلاس های اونجا هم مطابق کتاب winCE6 Fundamentals است که من در مورد WinCE معرفی کرده ام. بهترین و کاملترین مطالب در اون هست لیکن MSDN نیز مرجع خوبی در این زمینه است.
                در مورد BSP و OAL نیز در این کتاب توضیحات کاملی وجود دارد.

                مثلا در فصل 5 در تعریف BSP آورده:
                The board support package (BSP) enables a developer to build a run-time image of the Windows Embedded CE operating system for a specific hardware platform. Each hardware platform for which an operating system needs to be built must include its designated BSP. Usually, building a BSP is the most labor-intensive part of creating a device. Building a BSP
                requires that the developer is familiar with the hardware architecture as well as the architecture of the operating system. All of the interaction of the operating system with the device is implemented in BSP, and therefore, the quality of the BSP determines the resulting quality of the device.

                همینطور که مشاهده می کنید نوشته شده که شما به عنوان یک برنامه نویس با داشتن BSP می توانید یک run-time image برای یک معماری خاص مانند ARM یا X86 یا MIPS یا SH3 رو برای سیستم عامل WinCE بسازید. شما هم BSP برد خودتون را از روی DVD همراه دستگاه در مسیر C:\WINCE600\PLATFORM کپی می کنید. همانطور که بیان شده ساخت یا نوشتن یک BSP فرآیند بسیار وقت گیر و مشکل است چرا که نیاز دارد برنامه نویس با معماری سخت افزار و سیستم عامل بخوبی آشنا باشد.

                به زبان ساده بگم ببین ماکروسافت یک سیستم عامل اوپی سورس نوشته که خیلی از معماری ها رو پشتبانی می کند منتها چون کلی است و برای معماری و سخت افزار خاصی نیست بایستی برای سخت افزار شما یک لایه باشد تا بین سیستم عامل اولیه و سخت افزار شما ارتباط برقرار کند که بسیار پیچیده است. چون برنامه نویس ها الزاما با معماری سخت افزار بطور کامل آشنا نیستند و دلیلی هم ندارد که تمامی جزئیات را بدانند. تولید کننده یک سخت افزار یک لایه نرم افزاری (شامل مقدار زیادی کد) به سیستم عامل بر اساس سخت افزار خود (دستگاه خود) اضافه می کنند تا برنامه نویس ها بتوانند راحتتر برنامه بنویسند. البته BSP کارهایی دیگری هم می کند منتها مهمترین وظیفه آن این لایه نرم افزار بود که بسیار ساده برای شما بیان کردم. لیکن در ادامه در این فصل کتاب نوشته شده که BSP شامل موارد زیر است:
                1- Boot Loader
                2- OAL
                3- درایور های سخت افزار
                4- فایل های پیکربندی سیستم عامل

                چون مطالب بسیار ساده است و توضیح این ها از حوصله من خارج است بسیار توصیه می کنم متن شیوای کتاب را بخوانید.



                موفق باشید
                http://embeddedelectronics.ir

                دیدگاه


                  #9
                  پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

                  سلام
                  خیلی ممنون از جواب شما :applause:
                  چون شما تاپیک زده بودین هرکسی سوال داره بپرسه من پرسیدم وگرنه نمیدونستم از حوصله شما خارجه :agree:
                  تشکر از شما
                  اینا رو خونده بودم ولی فکر کنم بیشتر بخونم متوجه میشم
                  :read:

                  دیدگاه


                    #10
                    پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

                    سلام آقای مصلح راد،
                    یه سوال ابتدایی:آ‌ما می خواهیم برنامه گرافیگی (شی گرا)آ‌برای پانل بنویسیم (برای راه اندازی winCE) زبان برنامه نویسی انتخاب کنیم ++C یا #C؟ بعضیا میگن برای شروع سی پارپ بهتره ولی یه عده میگن با سی پلاس پلاس کار کنید. به نظرتون کدومو انتخاب کنیم؟
                    ممنون

                    دیدگاه


                      #11
                      پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

                      سلام مهندس
                      آقا یه سوال
                      !
                      من یه ویندوز سی ای روی 2440 نصب کردم
                      حالا میخام برنامه بنویسم روش لود کنم! چیکار کنم ؟ با چچی بنویسم؟ با CPP یا C sharp?
                      کلا فایل آماده ی ویندوز سی ای رو پلود کردم , روش کامپایل کردن اون ویندوز رو هم هنوز بلد نیستم
                      اون دی وی دی های سایت رو هم خریدم اگه یه منبع آموزشی برای فرایند کاری رو هم بزارین ممنون میشم...

                      دیدگاه


                        #12
                        پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

                        نوشته اصلی توسط farkey
                        سلام آقای مصلح راد،
                        یه سوال ابتدایی:آ‌ما می خواهیم برنامه گرافیگی (شی گرا)آ‌برای پانل بنویسیم (برای راه اندازی winCE) زبان برنامه نویسی انتخاب کنیم ++C یا #C؟ بعضیا میگن برای شروع سی پارپ بهتره ولی یه عده میگن با سی پلاس پلاس کار کنید. به نظرتون کدومو انتخاب کنیم؟
                        ممنون
                        سلام

                        واقعیت اینکه این سئوال رو خیلی ها می پرسند که ++C بهتره یا VB و #C.
                        یک اصل وجود دارد و اون اینکه WinCE سیستم عاملی است Open Source که با زیان ++C نوشته شده است. بنابراین تمام کد های آن با ++C یا نهایتا اسمبلی است. به عنوان یک اصل کلی اگر شما می خواهید از این خاصیت WinCE استفاده کنید یعنی کد های سیستم عامل را دستکاری یا اصطلاحا ویندوز را به صورت حرفه ای برای خود سفارشی کنید بهتر است ++C را فرا بگیرید و اصلا به VB و #C فکر هم نکنید.
                        برنامه نویسی در زبانهای سطح بالایی مانند VB و #C دارای محدودیت های زیادی است. اما سرعت برنامه نویسی در آنها نسبت به ++C بیشتر است.
                        در حالت کلی انتخاب زبان برنامه نویسی بستگی به نوع برنامه و ملزمات آن دارد.
                        مثلا اگر شما یک دستگاهی را بتعداد زیاد برای هدفی خاص تولید کنید باید سه موضوع را در نظر بگیرید:
                        اول، بهینه ترین سخت افزار را جهت صرف جویی هزینه انتخاب کنید.
                        دوم اینکه روی این سیستم بهینه، برنامه بهینه بنویسید که نیاز به منابع سخت افزاری حداقلی مانند CPU ارزانتر با کلاک کمتر و یا RAM کمتر و ... داشته باشد.
                        سوم، برنامه شما با سرعت مناسب روی این سیستم بهینه اجرا شود.

                        که فقط ++C است که می تواند تمامی این نیاز ها را پوشش دهد.
                        موفق باشید
                        http://embeddedelectronics.ir

                        دیدگاه


                          #13
                          پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

                          نوشته اصلی توسط حامد مصلح راد - HMR
                          سلام

                          واقعیت اینکه این سئوال رو خیلی ها می پرسند که ++C بهتره یا VB و #C.
                          یک اصل وجود دارد و اون اینکه WinCE سیستم عاملی است Open Source که با زیان ++C نوشته شده است. بنابراین تمام کد های آن با ++C یا نهایتا اسمبلی است. به عنوان یک اصل کلی اگر شما می خواهید از این خاصیت WinCE استفاده کنید یعنی کد های سیستم عامل را دستکاری یا اصطلاحا ویندوز را به صورت حرفه ای برای خود سفارشی کنید بهتر است ++C را فرا بگیرید و اصلا به VB و #C فکر هم نکنید.
                          برنامه نویسی در زبانهای سطح بالایی مانند VB و #C دارای محدودیت های زیادی است. اما سرعت برنامه نویسی در آنها نسبت به ++C بیشتر است.
                          در حالت کلی انتخاب زبان برنامه نویسی بستگی به نوع برنامه و ملزمات آن دارد.
                          مثلا اگر شما یک دستگاهی را بتعداد زیاد برای هدفی خاص تولید کنید باید سه موضوع را در نظر بگیرید:
                          اول، بهینه ترین سخت افزار را جهت صرف جویی هزینه انتخاب کنید.
                          دوم اینکه روی این سیستم بهینه، برنامه بهینه بنویسید که نیاز به منابع سخت افزاری حداقلی مانند CPU ارزانتر با کلاک کمتر و یا RAM کمتر و ... داشته باشد.
                          سوم، برنامه شما با سرعت مناسب روی این سیستم بهینه اجرا شود.

                          که فقط ++C است که می تواند تمامی این نیاز ها را پوشش دهد.
                          موفق باشید
                          باسلام
                          c++ برنامه هایی در حد کنسول هست و نمی تواند visual باشد
                          البته این مطلب رو لطفا بیشتر توضیح بدید که wince open source هست یعنی چی؟
                          ماکروسافت کدوم محصولش open source بوده؟

                          دیدگاه


                            #14
                            پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

                            من تعداد سوالاتم خیلی زیاده.میشه لطف کنین id یاهوتون رو بدین و یه ساعتی که on هستین رو مشخص کنین.
                            خیلی متشکر.

                            دیدگاه


                              #15
                              پاسخ : پاسخگویی به سئوالات شما در مورد WINCE

                              :NO: :NO:
                              یاهو آِی دی چیه! اینجا فرومه همه میخان یاد بگیرن :NO: :NO:

                              دیدگاه

                              لطفا صبر کنید...
                              X