اطلاعیه

Collapse
No announcement yet.

ریختن فایل هگز روی بورد LPC1768

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

    ریختن فایل هگز روی بورد LPC1768

    سلام
    من به تازگی کار روی بورد LPC1768 رو شروع کردم.
    وقتی فایل باینری برنامه های نمونه موجود در سی دی همراه این بورد را از طریق USB روی بورد می ریزم اجرا می شود ولی وقتی در keil یه برنامه می نویسم و فایل باینری آن را تولید می کنم رو به بورد منتقل می کنم، هیچ برنامه ای اجرا نمی شود... :sad:

    #2
    پاسخ : ریختن فایل هگز روی بورد LPC1768

    سلام
    من به تازگی کار روی بورد LPC1768 رو شروع کردم.
    وقتی فایل باینری برنامه های نمونه موجود در سی دی همراه این بورد را از طریق USB روی بورد می ریزم اجرا می شود ولی وقتی در keil یه برنامه می نویسم و فایل باینری آن را تولید می کنم و به بورد منتقل می کنم، هیچ برنامه ای اجرا نمی شود...

    دیدگاه


      #3
      پاسخ : ریختن فایل هگز روی بورد LPC1768

      نوشته اصلی توسط برق1390
      سلام
      من به تازگی کار روی بورد LPC1768 رو شروع کردم.
      وقتی فایل باینری برنامه های نمونه موجود در سی دی همراه این بورد را از طریق USB روی بورد می ریزم اجرا می شود ولی وقتی در keil یه برنامه می نویسم و فایل باینری آن را تولید می کنم و به بورد منتقل می کنم، هیچ برنامه ای اجرا نمی شود...
      این میکرو بوت لودر usb سخت افزاری نداره . ولی بوت لودر uart سریال داره . مثلا میکرو sam7x256 فقط بووت لودر usb داره . یا مثلا stm cortex ها علاوه بر بوت لودر uart و usb بوتت لودر can هم داره .

      القصه
      برای اینکه این قابلیت رو به LPC1768 بدن با توجه به اینکه معماری کوررتکس خاصیت جابجایی بردار وقفه داره یعنی میتونه 10 ها بردار وقفه متفاوت داشته باشه یعنی تو هر قسمت حافظه تشکیل بردار وقفه بده . بنابر این میان یک برنامه مقیم حافظه می نویسن که خودش تو خانه صفر تا 1999 حافظه میشنه و بردار وقفه خودشو داره . این برنامه مقیم میاد برنامه شما رو از فایل فلش مموری usb می خونه و تو خانه 2000 به بعد مینویسه . حالا بعد از هر بار ریست میپره به آدرس 2000 که میشه بردار وقفه جدید برنامه شما . بنا بر این برنامه شما رو اجرا میکنه .

      القصه برنامه ای که به صورت معمولی کامپایل شده رو نمی تونید با بوت لودر تو میکرو LPC1768 بریزید . باید تو موقع کامپایل برای کل برنامه یک آفست 2000 بایتی در نظر بگیرید .

      تو همون سی دی گفته باید چیکار کنید.

      یک
      تنها موردی که همه آدما یقین دارن خدا در حقش زیاد لطف کرده
      داشتن عقله زیادتر از دیگر آدم ها است

      دیدگاه


        #4
        پاسخ : ریختن فایل هگز روی بورد LPC1768

        اگر یه بار اشباه برنامه رو ریخته باشی بوت لودر رو به فنا دادی. توصیه اکید می کنم برای کار با 1768 مبلغ 13 هزار تومان خرج کنید و کتاب آموزشی رو از فروشگاه بخرید. به نظرم مرجع خوبیه. چون در مورد آرم توی وب مطلب کم و پراکنده هستش. همچنین باعث میشه عمر میکرو طولانی بشه و کدهای نادرست روی میکرو لود نکنید که داغون بشه!
        موفق باشید
        STM32 واقعا یه چیز دیگه است...

        دیدگاه


          #5
          پاسخ : ریختن فایل هگز روی بورد LPC1768

          سلام منم یه برد lpc1768 گرفتم و یک led چشمک زن نوشتم ولی اجرا نمیشه و روی سخت افزار پین مورد نظر رو یک نگه میداره ، آدرس شروع رو هم روی 0x2000 تنظیم کردم. وتمام تنطیمات targetوبخش linker رو هم درست انجام دادم البته یک بار تنطیمات رو اشتباه انجام داده بودم،البته با پشتیبانی سایت تماس گرفتم گفت اگر آدرس رو هم اشتباه بدی اتفاقی نمیفته ، میتونی برنامه قبلی رو پاک کنی وبرنامه ی جدید رو جایگزین کنی ، وقتی آدرس رو روی 0x2000 میذارم برنامه روی شبیه ساز هم درست عمل نمیکنه و چشمک زن نمیشه و پین مورد نظر رو یک نگه میداره،اگر روش حل این مشکل رو بگید ممنون میشم :sad:
          اینم نمونه برنامه هست:
          #include"LPC17XX.h"
          #include"delay.h"
          #include"delays.h"
          #include<math.h>
          #define set_p1 LPC_GPIO1->FIOSET=0x00000002
          #define reset_p1 LPC_GPIO1->FIOCLR=0x00000002
          #define MEMMAP *((volatile unsigned long*)(0x400FC040))

          void delay_1s (void){
          unsigned int i=800000;
          while(i--);}
          unsigned int a=0x00000000;
          main (void){


          MEMMAP = MEMMAP | 0x00000001;
          LPC_GPIO1->FIODIR=0x00000003;
          for( ; ; ){
          LPC_GPIO1->FIOSET=0x00000001;
          delay_1s();
          LPC_GPIO1->FIOCLR=0x00000001;
          delay_1s();

          }}







          دیدگاه


            #6
            پاسخ : ریختن فایل هگز روی بورد LPC1768

            یه گزینه تو بخش تنظیمات هست که به کامپایلر دستور میده مموری لی اوت رو از دستور نوشته شده باید کپی کنه باید اون رو تیک دار کنی. اسم و جای دقیقش الان یادم نیست. ولی مهمه! ضمنا بعید می دونم اگر آدرس اشتباه بدید بوت لودر سالم بمونه. بهترین کار فک کنم خرید J-linkباشه! ولی من دستورات رو با بوت لودر می ریختم درست اجرا می شد.
            STM32 واقعا یه چیز دیگه است...

            دیدگاه


              #7
              پاسخ : ریختن فایل هگز روی بورد LPC1768

              من بخش مموری لی اوت رو هم تنظیم کردم ولی جواب نمیده،مشکل اینجاست که وقتی آدرس شروع رو از0x0 به 0x2000تغییر میدم ، حتی تو شبیه ساز هم درست عمل نمیکنه ودیگه چشمک زن نمیشه و خروجی رو روی یک نگه میداره،در حالی که وقتی رو آدرس شروع 0x0 هست شبیه ساز درست عمل می کنه ،لطفا راهنمایی کنید،ممنون :sad:

              دیدگاه


                #8
                پاسخ : ریختن فایل هگز روی بورد LPC1768

                مشکلم حل شد،مشکل این بود که تو برنامه از رجیستر memmap استفاده میکردم و با نوشتن یک توی این رجیستر باعث میشدم تا میکرو بعد از اجرای بوت لودر بیاد واز آدرس صفر دوباره برنامه اصلی رو اجرا کنه،در مورد استفاده از شبیه ساز keil هم باید بگم که حتما برای استفاده از شبیه ساز باید آدرس شروع 0x0 باشه وفقط برای پروگرام کردن از طریق بوت لودر باید آدرس رو روی 0x2000تنظیم کنیم ،وهمچنین توصیه میکنم که اون فایل باینری اولیه که توسط سازنده برد روی حافظه ریخته شده رو جایی کپی کنید تا اگر اشکلی پیش اومد دوباره رو حافظه میکرو قرار بدید و میکرو را یکبار با اون فایل runکنید وسپس دوباره کد برنامه اصلی تون رو توش بریزید ، چون من خودم این کار رو انجام دادم. بهر حال خیلی خوشحالم که حل شد . :applause: :wow:

                دیدگاه


                  #9
                  پاسخ : ریختن فایل هگز روی بورد LPC1768

                  حالا با اشتباه آدرس دادن ، کد اولیه بوت لودر روی میکرو خراب شد یا نه؟ اگر خراب شد باید با jlink دوباره ریخته بشه؟
                  امضاندارم. میشه انگشت بزنم...؟

                  www.AsanService.ir

                  دیدگاه


                    #10
                    پاسخ : ریختن فایل هگز روی بورد LPC1768

                    نوشته اصلی توسط hossein.a
                    حالا با اشتباه آدرس دادن ، کد اولیه بوت لودر روی میکرو خراب شد یا نه؟ اگر خراب شد باید با jlink دوباره ریخته بشه؟
                    بله، با jlink دوباره باید فایل بوت لودر را بریزید.
                    STM32 واقعا یه چیز دیگه است...

                    دیدگاه

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