اطلاعیه

Collapse
No announcement yet.

گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

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

    گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

    زمانیکه با MPLAB C18 برنامه رو BUIILD میکنم این ارور رو میده ، این چی ؟
    MPLINK 4.40, Linker
    Device Database Version 1.3
    Error - could not find definition of symbol 'main' in file 'C:\Program Files (x86)\Microchip\mplabc18\v3.40\lib/c018i.o'.
    Errors : 1

    Link step failed.
    تو فروم های خارجی این رو پیدا کردم ، اما متوجه نمیشم :angry:

    i think your makefile (if you have one) is incorrect.
    the above seems to be the call to the linker command. the linker is passed several object files and then links all of these files to generate your application. the above shows that xlcd.o is being included in the link, also the p18f4525.lib is also being pulled in, but the object file where the main() function is not being pulled in. try to edit/fix you makefile or your settings so that main.o is being compiled and is being pulled in by the linker.
    اینم آدرس این مطالبه
    http://www.societyofrobots.com/robot...p?topic=2934.0

    #2
    پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

    و این هم کد برنامه SD CARD هست ، البته فقط پیکربندی اولیه :angry:
    کد:
    #include <p18f8722.h>
    #include <FSIO.h>
    #pragma config WDT = OFF, OSC = HSPLL, LVP = OFF
    #pragma config MCLRE = ON, CCP2MX = PORTC, MODE = MC
    /* =================== START OF MAIN PROGRAM =================== */
    
    
    void main(void)
    {
    
    // Initialize the SD card routines
    
    FSInit( );
    //
    //
    }
    و این هم تنظیمات پایه های میکرو در SD-SPI

    کد:
    #define SD_CS PORTBBits.RB3
    #define SD_CS_TRIS TRISBBits.TRISB3
    #define SD_CD PORTBBits.RB4
    #define SD_CD_TRIS TRISBBits.TRISB4
    #define SD_WE PORTABits.RA4
    #define SD_WE_TRIS TRISABits.TRISA4
    #define SPICON1 SSP1CON1
    #define SPISTAT SSP1STAT
    #define SPIBUF SSP1BUF
    #define SPISTAT_RBF SSP1STATbits.BF
    #define SPICON1bits SSP1CON1bits
    #define SPISTATbits SSP1STATbits
    #define SPICLOCK TRISCbits.TRISC3
    #define SPIIN TRISCbits.TRISC4
    #define SPIOUT TRISCbits.TRISC5
    #define SPICLOCKLAT LATCbits.LATC3
    #define SPIINLAT LATCbits.LATC4
    #define SPIOUTLAT LATCbits.LATC5
    #define SPICLOCKPORT PORTCbits.RC3
    #define SPIINPORT PORTCbits.RC4
    #define SPIOUTPORT PORTCbits.RC5
    من درکی از فایلهای C. و h. ندارم ! ! ! یکم توضیح میدین !!! اینکه بعضی وقتها هم با این گذارش خطا در گیرم
    SD-SPI.c symbol 'PORTBBits' has not been defined
    SD-SPI.c symbol 'PORTBBits' has not been defined
    تو فایل hardwareprofile.h دستکاری کردم
    idef# 18cxx ها رو کردم 18fxx
    پایه های spi رو درست کردم و ...
    نشد که نشد !!!

    دیدگاه


      #3
      پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

      سلام
      نوشته اصلی توسط aryanaar
      من درکی از فایلهای C. و h. ندارم ! ! ! یکم توضیح میدین !!! اینکه بعضی وقتها هم با این گذارش خطا در گیرم
      خوب اگه درکی ندارید پس چیو درک کردید کلا چند تا قاعده داره که شما 2 تاشو هم نمیدونید از اونجایی که Linker هم نمی شناسد می شه 3 و 18Cxxx به 18Fxxx تبدیل کردید یعنی کتابخانه ها رو هم نمی شناسید و ................ . اما خوب می تونید بشناسید که دیگه به ارور نرسید هیچ کس از اول برنامه نویس نیست که ! :nerd:
      من کد های شمارو نخوندم ممکنه یک جای شو خراب کاری کرده باشید :read:
      c. : بیشتر برای تعریف یک کتابخانه یا برنامه اصلی استفاده می شه و شما مثلا در Main.C برنامه اصلی می زارید و در MSD.C کتابخانه کارت SD پس برنامه اصلی منظم تر می شه و خیلی کارای دیگه ....
      h. : با این فایل خیلی کارا می شه کرد ولی رایج ترینش تعریف حالات یک بخش یا تعریف نام برای یک رجیستری یا پین یا ........ (ببخشید توضیح این قسمت به فارسی یکم برای من سخت ) منظور از حالت هم این هست که مثلا شرکت میکروچیپ فایل هدر 18Cxxx.h ساخت و شما از اون استفاده می کنید و درونش کل پین ها و رجیستری ها به یک اسم درست نسبت داده شدن ولی وقتی شما مثلا میزنید 18F452.h در اصل از همون فایل 18Cxxx.h استفاده می شه ولی درونش شرطی داره که فقط مواردی که بدرد 18F452 می خوره رو استفاده می کنه ( این فقط یک استفاده خیلی کوچیک)

      اگه قبلا بدون مشکل با همه قسمت های MCC18 کار کردید که هیچ ولی اگه نکردید احتمالا کامپایلر فایل های کتابخانه یشو پیدا نمی کنه که باید دستی درستش کنید و خراب کاری هارو هم درست کنید
      به طور مثال شما باید فایل lkr. به کامپایلر معرفی کنید چون احتمالا تو برنامه ازش استفاده شده و به صورت اتوماتیک پیداش نکرده .


      مگه شما از پروگرمر شرکت میکرو چیپ استفاده می کنید که این کد رو تعریف کردید ؟
      کد:
      pragma config WDT = OFF, OSC = HSPLL, LVP = OFF
      #pragma config MCLRE = ON, CCP2MX = PORTC, MODE = MC
      من کمتر پروگرمری رو دیدم که با کد فیوزبیت MPLAB درست کار کنه ( در اکثر موارد فیوز بیت هادرست تنظیم نمی شه و باید تحت برنامه پروگرمر دستی تنظیم بشه)حتما برای شما کار می کنه و اصلا به موضوع هم ربطی نداشت یکی نیست بگه مگه فضولی :nice:

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

      خودمن به شخصه MPLAB استفاده می کنم که دلایل متعدد داره ولی کار باهاش سخت و یک سری ریزه کاری داره اگه شما هنوز درست و حسابی با هاش کار نکردید پیشنهاد می دم با CCS کار کنید چون خیلی بهتره و حجم کد ایجاد شده هم کمتره تو خود سایت Microchip این حرف تایید شده من به شخصه هم با هاش حال می کنم چون در اکثر موارد کتابخانه شخصی خودم از کتابخانه های ترجمه شده CCS و winAVRوCodevision درست شده که CCS برای PIC و واقعا کامل و کرکش هم که تا حالا خوب جواب پس داده ولی خوب اگه دوست ندارید با همین MCC18 کار کنید تصمیم با خودتون
      * اگه جایی فعل جمله درست نبود یا غلط املائ بود ازش بگزرید چون اشتباه شخصی بوده* :arrow: :redface:
      موفق باشید

      دیدگاه


        #4
        پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

        با MICRO C PRO کار میکردم و کاری به این فایلهای .h ,.... نداشتم و :cry:
        بعد از کلی گشتن دیدم این کامپایلری هست که میشه روش سرمایه گذاری کرد و آدم عمرش رو تلف نکنه
        می خوام با این mplab c18 کار کنم :read: ( الان 4 روزه شروع کردم )
        پروگرمرم mplab icd2 هست
        1- چندتا فایل رجیستری دارم ، برای کرکش هست ، اما نمیدونم چی جوری ازش استفاده کنم ؟
        mplab c18 reg edit info x64 و x86
        خیلی وقت پیش نصبش کردم ، الان زده 17 روز باقی مونده تا یه سری ویژگیهای eval محدود بشه
        2-اگر این چند روز تموم بشه ، دقیقا چی میشه ؟ فقط حجم فایل خروجی بیشتر میشه ؟
        اگر اتفاق بدتری میوفته ، همین الان برم دنبال MOCROC PRO و فعلا موقتا بیخیال این کامپایلر بشم !
        3-چرا خودتون این mcc18 رو انتخاب کردین ؟
        //************************************************** ******************//
        من کتاب dogan ibrahim
        sd card project using pic microcontroller رو گرفتم و دارم اولین پروژه رم sd رو اجرا میکنم (صفحه 420)
        اگر کتابش رو ندارید ، بذارمش ؟
        توش آموزش چندانی برای mcc18 نداره ! با بهتر بگم اصولی برای یه مبتدی آموزش نداده !
        تو نت هم اموزش فارسی براش نیست
        من قصدم اینه که نهایتا آخرین پروژه این کتاب رو انجام بدم و بسازمش و یه سری سنسور و یه RTC و LCD بهش اضافه کنم ، میدونم راه زیاده ، اما تا جایی که توان داشته باشم انجامش میدم ، اگر نشد میرم دنبال MICROC PRO که آسونتره
        //************************************************** ******************//
        فایل 18f8722.lkr و مسیرش رو بهش دادم
        تو قسمت build option مسیرهای fsconfig ,hardwareprofile و هرچی که لازم بود رو بهش دادم
        //************************************************** ******************//
        ممنونم


        دیدگاه


          #5
          پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18


          نوشته اصلی توسط aryanaar
          با MICRO C PRO کار میکردم و کاری به این فایلهای .h ,.... نداشتم و :cry:
          بعد از کلی گشتن دیدم این کامپایلری هست که میشه روش سرمایه گذاری کرد و آدم عمرش رو تلف نکنه
          MICRO C PRO اصلا بیخیال شو چون واقعا آدم تنبل می کنه

          نوشته اصلی توسط aryanaar
          من می خوام با این mplab c18 کار کنم :read: ( الان 4 روزه شروع کردم )
          خوب انشالله موفق باشید هر طور دوست دارید عمل کنید
          ولی خداییش کسی بعد از 4 روز نمی وفته به جون SD کارت شما خیلی تند دارید می رید امید وارم موفق بشید

          نوشته اصلی توسط aryanaar
          1- چندتا فایل رجیستری دارم ، برای کرکش هست ، اما نمیدونم چی جوری ازش استفاده کنم ؟
          mplab c18 reg edit info x64 و x86
          خیلی وقت پیش نصبش کردم ، الان زده 17 روز باقی مونده تا یه سری ویژگیهای eval محدود بشه
          2-اگر این چند روز تموم بشه ، دقیقا چی میشه ؟ فقط حجم فایل خروجی بیشتر میشه ؟
          اگر اتفاق بدتری میوفته ، همین الان برم دنبال MOCROC PRO و فعلا موقتا بیخیال این کامپایلر بشم !
          اینو نمی دونم باید دقیقا بدونم چی دارید بعد تست بشه الان که به طور عادی حجم فایل شما زیاد هست فقط بعد 17 روز دیگه کدی ایجاد نمی شه

          نوشته اصلی توسط aryanaar
          2- پروگرمرم mplab icd2 هست
          اصل یا برای شرکت میکرو هرتز البته مهم نیست چون اصلا ربطی به ارور ها نداره

          نوشته اصلی توسط aryanaar
          چرا خودتون این mcc18 رو انتخاب کردین و با ccs کار نمیکنید ؟
          فقط چند تا دلیل کوچیک میگم که برای خودم مهم و اصلا دلیل منطقی نیست
          * چون 6 سال پیش شروع کردم و از MPASM پس ابدیده شدم و بعد از 2 سال با CCS اشنا شدم ولی دیگه دستم رو MPLAB راه افتاده بود و کتابخانه شخصیمم باید کلی تغییر می کرد تا به CCS بخوره
          * بعدش شروع کردم به کار با dsPIC و Tools های MPLAB استفاده کردم مثل dsPIC Filter و RTOS و .........
          * الانم دنبال PIC32 هستم که فعلا پول خرید ICD3 رو ندارم پس فعلا منتفی
          Open source بودن کتابخانه ها مثل CCS و برعکس Micro c که کتابخانه هاش قفل
          ** کار کردن با برد های اصلی شرکت که دیگه نمی شه درون CCS شناخته بشن
          و ...
          مهمترینش همون تجربه و کتابخانه های شخصی خودم چون بقیشو می شه با CCS هم راه انداخت

          اگه الان بخوام CCS کار کنم میرم دنبال ARM چون ارزش نداره که وقتی با یک کامپایل بلدم کار کنم برم دنبال یکی دیگه بجاش یک میکرو جدید یاد می گرم که بجای اونم الان دارم با VHDL و FPGA Xilinx کار می کنم که هنوز مبتدی مبتدیم



          همون طور که از عکس معلوم HI-Tech از MPLAB C18 بهتره چون کد شمارو بهینه می کنه و به طور کلی HI-Tech و CCS و IAR در یک حد هستن و من قصد ندارم نظر خودمو به شما تحمیل کنم ولی خوب چون هنوز شروع نکردید به نظر من با CCS کار کنید نتیجه بهتری می ده باز تصمیم با خودتون من که کاره ای نیستم
          البته ممکنه بدونید که می شه کامپایلر CCS در MPLAB قرار داد و تو MPLAB باهاش کار کرد ( فقط محض اطلاع گفتم )
          و مثال های CCS برای شما خیلی خوبن چون هنوز مبتدی هستین و پروژه های اینترنتی خوبی با CCS انجام شده که با MCC18 کمتره .
          ولی اگه دوست دارید با MCC18 کار کنید ولی از ما گفتن بود که یک دفعه یک ماه دیگه خسته نشید بگید عجب میکروی زبون نفهمیه (چون خود من یک سال اول خیلی باهاش کلنجار رفتم اخه من از اون پررو ترم) :biggrin:


          نوشته اصلی توسط aryanaar
          من کتاب dogan ibrahim
          sd card project using pic microcontroller رو گرفتم و دارم اولین پروژه رم sd رو اجرا میکنم (صفحه 420)
          اگر کتابش رو ندارید ، بذارمش ؟
          توش آموزش چندانی برای mcc18 نداره ! با بهتر بگم اصولی برای یه مبتدی آموزش نداده !
          تو نت هم اموزش فارسی براش نیست
          من قصدم اینه که نهایتا آخرین پروژه این کتاب رو انجام بدم و بسازمش و یه سری سنسور و یه RTC و LCD بهش اضافه کنم ، میدونم راه زیاده ، اما تا جایی که توان داشته باشم انجامش میدم ، اگر نشد میرم دنبال MICROC PRO که آسونتره
          شرمندم کتاب ندیدم ولی با سرچی که کردم دیدم تحت PIC Basic که واقعا جالبه ولی بدرد بخور نیست چون خیلی ضعیف و کتابخانه های خوبی هم اصلا نداره ( کاملا نظر شخصیه )
          بعد تو کتاب با 18F8722 کار کرده !!!!!!!!!!!!!!!!!!!!!
          فارسی هم در مورد PIC و زبان C خیلی کم یه جورایی اصلا نیست
          بجای این که برید سراغ MICROC PRO اول CCS تست کنید بعد اگه راضی نبودید برید سراغ اون
          لطفا بعد از زدن پست ویرایش نکنید اگه هم می کنید مطلب اضافه نکنید فقط اگه اشتباهی بود درست کنید که منظم بشه تا منم مجبور نشم ویرایش کنم با تشکر فراوان

          دیدگاه


            #6
            پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18


            این لینک کارمه
            http://ifile.it/xgycsrw/sd.rar

            دیدگاه


              #7
              پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

              نوشته اصلی توسط aryanaar
              این لینک کارمه
              http://ifile.it/xgycsrw/sd.rar
              ببخشید اگه اشتباه نکنم منظورتون این بود که فایلی هست که می خوایید باهاش کار کنید چون مثل این که این چند تا مثال من فکر کردم شما خودتون نوشتیدش
              من تغییرش دادم و فقط به چند تا خط برنامه گیر می داد که سر فرصت باید بشینم ببینم چی میگه چون خیلی هدر فایل داره و تا ندونم چی کار کرده نمی تونم بگم گیرش کجاست ولی به ارور شما نرسیدم

              دیدگاه


                #8
                پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

                این هم لینک کتاب
                http://ifile.it/j4mzo3y/SDCardProjec...controller.rar

                دیدگاه


                  #9
                  پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

                  شما که هنوز کار خاصی نکردید این لینک هارو ببینید تحت CCS و جواب هم میده
                  http://www.ccsinfo.com/forum/viewtopic.php?t=43417
                  http://www.ccsinfo.com/forum/viewtopic.php?t=43402
                  و حجم کدش هم خیلی کمتر از این فایل شماست و همچنین فهمش هم خیلی راحت تره تا MPLAB
                  فکر کنم آموزش فارسی CCS هم تو اینترنت باشه
                  نمی دونم فایل از کجا گرفتید و اصلا درست کار می کنه یا نه !!

                  دیدگاه


                    #10
                    پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

                    کتاب و چی دیدید ، کتاب جالبیه ، پروژش هم تقریبا همونیه که من می خوام
                    البته این هم هست
                    http://www.mikroe.com/eng/downloads/...r_ew_02_09.pdf
                    ممنونم از کمکتون

                    دیدگاه


                      #11
                      پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

                      یک بار دیگه پروژه رو کامپایل میکنم با سرفایلهای جدید و پلود میکنم

                      دیدگاه


                        #12
                        پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

                        نوشته اصلی توسط aryanaar
                        کتاب و چی دیدید ، کتاب جالبیه ، پروژش هم تقریبا همونیه که من می خوام
                        بله کتاب جالبیه ولی نه برای یاد گیری
                        من فایل SD شما رو دیدم که شامل : sd
                        sd_card_project
                        MDDFS-SD-PIC18
                        MDDFS-SD-PIC24
                        MDDFS-SD-PIC32
                        خیلی درهم برهم چون من هنوز برنامه اصلی نفهمیدم کجا نوشته چون هیج جا شروع نکرده اصلا نمی فهمم برای چی 4 تا فایل کاری داره
                        من SD تست کردم که به چند خط از برنامه هدر فایل گیر می داد که جزء Define ها بود
                        الان شما قصد دارید فقط پروژتونو راه بندازید یا می خوایید یاد بگیرید ؟

                        دیدگاه


                          #13
                          پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

                          اومدم هرچی فایل بود رو تو یه پوشه ریختم و جمع و جور کردمشون
                          http://ifile.it/798kmdt/sd%20card%201.rar
                          و یه مقدار hardwareprofile.h و sd-spi.h رو طبق کتاب دستکاری کردم
                          نوشته اصلی توسط Sketcher
                          بله کتاب جالبیه ولی نه برای یاد گیری
                          الان شما قصد دارید فقط پروژتونو راه بندازید یا می خوایید یاد بگیرید ؟
                          هر دو
                          برای یادگیری mcc18 چی خوبه ؟
                          از دست microbasic pro و microc و ... خسته شدم
                          دلم باهاشون نیست ، و دیگه هم دوست ندارم وقتمو پای این کامپایلرهای بی ارزش ، بذارم
                          بعد از کلی گشتن رسیدم به mcc ، که می خوام یاد بگیرمش
                          کتاب رو پیدا کردم ، پیش خودم گفتم ، اینبار این پروژه رو تعریف میکنم که تا با این کامپایلر شروع کنم و یکم قاطی حرفه ایا بشم
                          البته به نظرم در ابتدا از کتابخونه های خودش باید استفاده کنم ، بفهمم اصلا چی ! بعد از یه مدت دستکاری و ...
                          این پروژه رو هم انجام میدم و یه برد براش میزنم و روش کار میکنم تا به جواب نهایی برسم ( خیلی پروژش برام جالبه ) هرچی ازش دستگیرم بشه ، باز بهتر از اون کامپایلراست که توش همه چی آماده هست و نمیشه دستکاریشون کرد !
                          (به بیراهه رفتن به از نشستن است )
                          از پاسخ هاتون و وقتی که میذارید ، خیلی ممنونم :agree:

                          دیدگاه


                            #14
                            پاسخ : گذارش خطا در کامپابل کردن کد رم SD در MPLABC18

                            نوشته اصلی توسط aryanaar
                            اومدم هرچی فایل بود رو تو یه پوشه ریختم و جمع و جور کردمشون
                            http://ifile.it/798kmdt/sd%20card%201.rar
                            و یه مقدار hardwareprofile.h و sd-spi.h رو طبق کتاب دستکاری کردمهر دو
                            خدا خیرت بده الان قشنگ منو گیج کردی نمی دونم کدوم خود شما نوشتید کدوم اصل چون فایل جدیدی که فرستادید uart2.h نداره من از فایل قبلیتون قرار دادم حالا پورت های SPI_SD.h تشخیص نمی ده من دقیقا فایل اصلی می خوام فایلی که شما هیچ تغییری در محتوای کد ها نداده باشید

                            نوشته اصلی توسط aryanaar
                            برای یادگیری mcc18 چی خوبه ؟
                            از دست microbasic pro و microc و ... خسته شدم
                            دلم باهاشون نیست ، و دیگه هم دوست ندارم وقتمو پای این کامپایلرهای بی ارزش ، بذارم
                            بعد از کلی گشتن رسیدم به mcc ، که می خوام یاد بگیرمش
                            نمی دونم از بین این همه چرا MPLAB C18 انتخاب کردید ولی خوب امید وارم قشنگ یاد بگیرید باهاش کار کنید بعد هیچ کامپایلری بی ارزش نیست بلاخره هر کدوم خوبی های خودشونو دارن و در این انجمن دوستانی هستن که با کامپایلر های شرکت Micro کار می کنن و راضی هم هستن و پروژه های خیلی جالبی هم انجام دادن

                            نوشته اصلی توسط aryanaar
                            کتاب رو پیدا کردم ، پیش خودم گفتم ، اینبار این پروژه رو تعریف میکنم که تا با این کامپایلر شروع کنم و یکم قاطی حرفه ایا بشم
                            البته به نظرم در ابتدا از کتابخونه های خودش باید استفاده کنم ، بفهمم اصلا چی ! بعد از یه مدت دستکاری و ...
                            این پروژه رو هم انجام میدم و یه برد براش میزنم و روش کار میکنم تا به جواب نهایی برسم ( خیلی پروژش برام جالبه ) هرچی ازش دستگیرم بشه ، باز بهتر از اون کامپایلراست که توش همه چی آماده هست و نمیشه دستکاریشون کرد !
                            امید وارم دیگه پیش خودتون از این جور تصمیمات قشنگ نگیرید چون خود من تو 2 ماه اول فقط داشتم LED و 7Seg راه می نداختم بعدش رسیدم به USB و TFT LCD و Eternet , ...............
                            فقط مشکل اینجاس که عیب یابی کد شخص دیگه یکم سخت چون هیچ آشنایی با برنامه طرف مقابل نداری و کلی باید بگردی ببینی کجا چی کار کرده

                            دیدگاه

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