اطلاعیه

Collapse
No announcement yet.

چه می کند این CodeVisionAVR !

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

    #16
    پاسخ : چه می کند این CodeVisionAVR !

    دوستان منم یک بگ در این ورژن 2.0.5 پیدا کردم
    حالا دقیقا نم دونم باگه یا نه
    شما اگه یک ارایه رو با بعد 5 تعریف کنید
    و اگر اشتباها ارایه بعد 6 رو برابر متغییری قرار بدید
    کل مقدار متغییر دوم جمع میشه با ارایه ای که شما تعریف کردید
    البته باز تو حلقه های پیچیده مشکلی باز عجیب تر دیدم
    q[0]=val[5];
    p[1]=val2[6];
    اینجا هم قاطی کرده
    و دو مقدار از هم جدا را باهم تلفیق کرده
    حالا تو iar کسی به این مشکلات خورده

    البته بگم برنامه است که 98 درصد مگا 8 پر کرده و بیش از 11 000 خط برنامه است
    هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
    بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
    میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

    تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

    دیدگاه


      #17
      پاسخ : چه می کند این CodeVisionAVR !

      اگه منظورتون اینه که دستوری مثل زیر داشته باشیم:

      int a[2];
      int b[2];

      b[1] = 0;
      a[2] = 5;

      printf("%d\n", b[1]);


      و عدد 5 چاپ بشه. این باگ(؟؟) تمام کامپایلر های C هست. و بهتر بگیم باگ برنامه نویس!!!! چون در C ما چکی و کنترلی روی محدوده قابل استفاده یک آرایه نداریم. بنا براین شما میتونی آرایه ای با طول 2 تعریف کنی ولی از عنصر 1000 ام اش هم استفاده کنی. ولی چه بلایی سر برنامه ات میاد؟ با خودته.

      دیدگاه


        #18
        پاسخ : چه می کند این CodeVisionAVR !

        باز این میگید از سی هست
        من الان توی چند حلقه if و while چند استرینگ (متن) توی همین ارایه ها دارم
        الان نمی دونم چرا اینا باهم قاطی میشن
        نمی دونم از کدویژن یا از سی شایدم میکرو
        باز نکنته جالبش همینجاست ارایه با طول 2 تعریف شده بعد میبنم 20 تایه دیگه هم قرض کرده همرو باهم نشون میده

        احتمالش هست چون از یک اشاره گر برای کار با متن استفاده کردم این مشکل پیش اومده
        بعد باز سواله بعدی اشاره گری که توی یک تابع ساخته میشه توی پشته هست یا تو فضای اصلی
        هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
        بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
        میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

        تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

        دیدگاه


          #19
          پاسخ : چه می کند این CodeVisionAVR !

          فرض کنین شما آرایه ای به طول 20 میگیرین. اگر یک '0\' در انتهای این رشته نذارین debugger قاطی میکنه و از ابتدای رشته تا جایی که به این کاراکتر برسه رو نشونتون میده. این باگ نیست. مثلا این کد هم همین مشکل رو نشون میده:

          char s1[2];
          char s2[10];

          strcpy(s1, "12"
          strcpy(s2, "3456789"

          printf("%s", s1);


          دستور printf رشته 123456789 رو چاپ میکنه. چون رشته اولی به '0\' ختم نشده و اینقدر جلو میره که کاراکتر اختتامیه رو پیدا کنه. و چون این کاراکتر در انتهای رشته دوم پیدا شده هر دو رشته رو پشت سر هم چاپ میکنه. البته فرض بر این قرار داده شده که این دو تا رشته پشت سر هم توی حافظه نشستن.

          یعنی چی اشاره گر ساخته میشه؟ اگر خود اشاره گر منظورتونه اگر محلی باشه توی پشته و گرنه توی حافظه عمومی یا حتی heap ممکنه باشه. اما حافظه ای که آدرسش در اون اشاره گر قرار میگیره ممکنه هر جایی باشه.

          دیدگاه


            #20
            پاسخ : چه می کند این CodeVisionAVR !

            دوست عزیز قاطی نمی کنه و باگ نداره
            اول باید سی رو یاد بگیری و دوم باید بفهمیش
            در ضمن آرایه در سی در اصل پوینتری به ابتدای آرایه هستش

            دیدگاه


              #21
              پاسخ : چه می کند این CodeVisionAVR !

              من هم متاسفانه باگهای زیادی در codevision دیدم و optimizer ورژن های مختلف هم به یک صورت عمل نمیکنه به این حالت که برنامه من در اکثر ورژن ها از حجم فلش بیشتر میشه. اما مساله دیگه ای که منو الان به شدت اذیت میکنه اینکه برنامه رو چطور سیموله کنم :sad: برنامه من از چندین فایل header تشکیل شده وقتی برنامه رو برای سیموله میفرستم رو avr studio تابعهایی که روی header ها قرار دارند اجرا نمیشن و بعد برنامه هنگ میکنه :angry: . خواهشا اگه کسی از دوستان چاره ای داره سریعا منو راهنمایی کنه
              با تشکر

              دیدگاه


                #22
                پاسخ : چه می کند این CodeVisionAVR !

                سلام . منم یک همچین مشکلی توی یک پروژه با کدویژن داشتم . من یک دستگاه درست کرده بودم و دستمون هم قرار بود کدش را با کدویژن بنویسه . برد ما یک ال سی دی کاراکتری هم داشت . داستان از اینجا شروع شده که کد ویژن فقط ترتیب پایه های خودش رو میفمه . یعنی روی یک پورت و به ترتیبی خاص ( شایدم این دوست ما بلد نبود ) خلاصه تمام برد را از پشت دوباره سیم کشی کردیم تا کدویژن فهمید . اینجا بود گفتم صد رحمت به بسکام .
                :mrgreen:
                نوفن پردازش هوشمند

                دیدگاه


                  #23
                  پاسخ : چه می کند این CodeVisionAVR !

                  نوشته اصلی توسط ARST
                  سلام . منم یک همچین مشکلی توی یک پروژه با کدویژن داشتم . من یک دستگاه درست کرده بودم و دستمون هم قرار بود کدش را با کدویژن بنویسه . برد ما یک ال سی دی کاراکتری هم داشت . داستان از اینجا شروع شده که کد ویژن فقط ترتیب پایه های خودش رو میفمه . یعنی روی یک پورت و به ترتیبی خاص ( شایدم این دوست ما بلد نبود ) خلاصه تمام برد را از پشت دوباره سیم کشی کردیم تا کدویژن فهمید . اینجا بود گفتم صد رحمت به بسکام .
                  :mrgreen:
                  این که با یه دستکاری ساده تو library قابل حله

                  دیدگاه


                    #24
                    پاسخ : چه می کند این CodeVisionAVR !

                    نوشته اصلی توسط ghasedak2716
                    این که با یه دستکاری ساده تو library قابل حله
                    سلام . منم به دوستمون همین میگفتم . ولی میگفت نمیشه . البته توی help کدویژون هم گفته بود که باید ترتیبی باشه . نیبل بالا دیتا ، نیبل پایین کنترل ولا غیر .
                    نوفن پردازش هوشمند

                    دیدگاه


                      #25
                      پاسخ : چه می کند این CodeVisionAVR !

                      تو ورژن های جدید که کتابخونه lcd بسته است
                      هرچه سعی کنیم لایه های نرم افزاری زیاد کرده و از سخت افزار دور کنیم مشکلات(باگ ها) کمتر خواهد شد(امنیت بیشتری خواهید داشت)
                      بهترین جواب دهنده برای سوال شما، خود شما هستید البته بعد تلاش،پشتکار و مطالعه بیشتر
                      میدونی مشکل ما کجاست؟سرمایه و مغز ها رو نمیتونیم یکجا جمع کنیم...

                      تعدادی ماژول GPS GP5MX1513F1 با بالاتریت حساسیت -170db به قیمت خرید بفروش میرسد

                      دیدگاه

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