اقا ما کی باشیم درس و تمرین بدیم.
دوستان هر کدوم رو یه قسمت تمرکز کنن.تا سرعت کار بالا بره.
من تصمیم دارم روی usart و بعد روی timer کار کنم و یه مقدار که جا افتادیم روی قسمت های حساس مانند adc,dma,...
سطحي و كار راه انداز
دقيق و حرفه اي
اقا ما کی باشیم درس و تمرین بدیم.
دوستان هر کدوم رو یه قسمت تمرکز کنن.تا سرعت کار بالا بره.
من تصمیم دارم روی usart و بعد روی timer کار کنم و یه مقدار که جا افتادیم روی قسمت های حساس مانند adc,dma,...
سلام بر و بچز ( ز معادل s جمع در زبان انگلیسی است ! ) . چطورید ؟ تا کجا پیش رفتید ؟!
نمی دونم دیگه با چه زبانی بگم که از پایه شروع کنید و از Reference Manual شروع کنید !
آخه مهندس doloop مگه من بیکار بودم بیام رجیستر ها رو از تو CMSIS مهندسی معکوس کنم ! خب عزیز یه نگاهی تو Manual بنداز ، ببینید همه چی داخلش نوشته !
اینم که یهو بخاید LCD وADC و اینا رو کار بندازید بنظر شما باعث سردرگمی نمیشه ؟
راه حل :
1 - در بحثی که با دوستان یکی دو شب پیش داشتیم در مورد کامپایلر ، من خیلی سرچ کردم ولی مثل اینکه کماکان Keil بهترین کامپایلر موجود هست و همه تو نت مشکلشون مثل ما ادیتور مقدماتی اون هست .
کیل هم گفته تو ورژن 4.23کنونی داره کم کم با eclipse یکپارچه میشه . من آلان دارم اینو دانلود می کنم ...
اگه مشکل ادیتور حل بشه دیگه جای حرف باقی نمی مونه . ضمنا در مورد اون ادیتور جدید ( CoIDE ) بگم که این ادیتور از بیس eclipse استفاده میکنه .
2 - با توجه به این که شما برد هاتون حاضره و صبر هم ندارید به نظر من کم کم دستورات CMSIS رو با هم شروع کنیم ! من از یکی دو شب پیش که وقت داشتم واحد های RCC و GPIO و اندکی از ADC رو کار کردم . می تونیم کم کم دستورات رو ادامه بدیم اگه هر جا سوال بود مطرح کنید بعد برید سراغ Manual و اگه پیدا کردید جواب رو بزارید تا بقیه هم استفاده کنند .
OK ????????
آقا خدا خيرت بده ... بيا و ما رو از اين جهالت نجات بده
ادامه دستورات رو هم با توابع استاندارد معمولي و هم با توابع استاندارد كرتكس CMSIS بريم جلو .. حتي به نظر من اگر CMSIS رو هم چند هفته تاخير بندازيم اشكالي نداره ..
درباره كيل هم درست ميفرماييد فقط مسئله ما محيط نوشتاري هست كه اگر با Eclips اداغام بشه ديگه حرفي نيست
منتظريم به اميد خدا
مهندس بالاخره بعد از چند روز سر و کله زدن تونستم بین eclipse و Keil ارتباط برقرار کنم !
آخرین نسخه KEIL که 4.23 هست و آخرین نسخه eclipse که 3.7.2 هست رو دانلود کردم . تو help کیل قسمت مربوط به eclipse اضافه شده که روش اتصال plugin کیل رو تو eclipse نشون داده .
من الان میتونم داخل eclipse بنویسم . امکاناتش فعلا فقط code hint هست ولی auto complete ندیدم . برای دیباگ هم بدون باز کردن کیل دیباگ می کنه . به ulink و حتما jlink هم میتونه وصل بشه . ولی مثلا تو دیباگ تمام ابزار ها رو نمی تونم بیارم . مثل logic analyzer . حقیقتش زیاد خوشم نیومد . این کیل اگه فقط code hint و auto complete رو بزاره دیگه فوق العاده میشه ....
توابع کتابخانه RCC
[php]
void RCC_DeInit(void);
void RCC_HSEConfig(uint32_t RCC_HSE);
ErrorStatus RCC_WaitForHSEStartUp(void);
void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue);
void RCC_HSICmd(FunctionalState NewState);
void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul);
void RCC_PLLCmd(FunctionalState NewState);
void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource);
uint8_t RCC_GetSYSCLKSource(void);
void RCC_HCLKConfig(uint32_t RCC_SYSCLK);
void RCC_PCLK1Config(uint32_t RCC_HCLK);
void RCC_PCLK2Config(uint32_t RCC_HCLK);
void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState);
void RCC_OTGFSCLKConfig(uint32_t RCC_OTGFSCLKSource);
void RCC_ADCCLKConfig(uint32_t RCC_PCLK2);
void RCC_LSEConfig(uint8_t RCC_LSE);
void RCC_LSICmd(FunctionalState NewState);
void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource);
void RCC_RTCCLKCmd(FunctionalState NewState);
void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks);
void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewState);
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);
void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState NewState);
void RCC_BackupResetCmd(FunctionalState NewState);
void RCC_ClockSecuritySystemCmd(FunctionalState NewState);
void RCC_MCOConfig(uint8_t RCC_MCO);
FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG);
void RCC_ClearFlag(void);
ITStatus RCC_GetITStatus(uint8_t RCC_IT);
void RCC_ClearITPendingBit(uint8_t RCC_IT);
[/php]
سلام
بابا تو ديگه كي هستيييي
خيلي خوشحال شدم كه تونستي از يك اديتور ديگه براي كيل استفاده كني
فقط
مهندس ما قبلا هم ميتونستيم داخل eclips يا هر اديتور ديگه بنويسيم ( با اضافه كردن هدر ها به پوشه پروژه اون)
حال شما داخل كيل ..ايكليپس رو صدا ميزني يا داخل ايكليپس .. كيل رو؟
ما حالت اول رو ميخواهيم يعني داخل كيل ايكليپس يا امكاناتش وارد بشه
در مورد دستورات هم خيلي اقايي .. ميرم بخونم با سواد بشم ..
راستي تمرين خيلي مهمه .. لطفا تمرين هم بدهيد كه دستورات عملياتي بشه
ویرایش توسط alishekarriz : 06-03-2012 در ساعت 16:57
سلام مهندس . در مورد eclipse بگم که این قابلیت رو کیل برای نسخه 4.22a به بالا گذاشته . قبلا هم میشد این کار رو کرد ولی الان همونطور که می دونید یک پوشه eclipse در کیل ایجاد شده که حاوی چند فایل جاواست و اگر eclipse این پوشه کیل رو شناسایی کنه یه نوار ابزار کیل در محیط eclipse اضافه می کنه و چند منوی کیل رو . در واقع یجورایی دیگه به کیل نیازی نداره . eclipse توابع کیل رو فراخوانی می کنه و اگه لازم باشه کیل رو هم بالا میاره . این همون چیزیه که کیل می خواست انجام بده و داد . البته فعلا اول راهه ...
در مورد فایل راستش توضیحاتش انگلیسیه . البته خیلی راحته . این روش یادگیری خودمه . امیدوارم بتونید استفاده کنید .
بعنوان تمرین همین کاری رو که برای راه اندازی میکرو نیاز دارید با اسیلاتور 8 پیاده کنید . مثل اسیلاتور داخلی 8 و کلاک باس 1 و 2 و ....
در صورتی که به انواع باس و سخت افزار آشنایی ندارید به منوال میکرو مراجعه کنید و اگه بازم متوجه نشدید بپرسید .
یا علی
درباره مدهاي متنوع نمونه برداري ADC ممكنه شرح بديد يعني چي ..
Single conversion mode
Continuous conversion mode
Scan mode
Regular group
Injected group
ديتاشيت رو خوندم ولي دقيقا كاربرد و تواناييهاي هر نوع رو نفهميدم ..
Triggered injection
Auto-injection
در Single conversion همون طور که از اسمش پیداست تنها یک نمونه گرفته میشه .
Continuous conversion در واقع همون مورد قبل هست که در زماهای مشخصی یک پالس adc رو تحریک می کنه و نمونه میگیره . یعنی در زمانهای مشخص نمونه میگیره ، پشت سر هم .
در Scan mode یک گروه ار کانالهای انتخاب میشه و سپس با فرمان ما یک اسکن از این کانالها صورت میگیره . یعنی چند کانالی که انتخاب شده با هم نمونه برداری می کنن . مثلا شما می خاین از 4 تا سنسور هر 1 ثانیه مقدار بگیرید . این چهار کانال رو انتخاب می کنید و سپس هر بار با صدور فرمان این چهار کانال رو اسکن می کنید .
Regular group وInjected group در واقع دو نوع سازماندهی کانالهاست . برای هر حالتی از کانالها که بخواهیم استفاده کنیم باید از رجیسترهای متفاوتی استفاده کنیم . 16 کانال با نمونه برداری Regular و 4 کانال با نمونه برداری Injected داریم . کانالهای مورد نظر رو انتخاب می کنیم و به ترتیب مورد نظر ما مثلا 2 تا 2 تا نمونه میگیره . یسری قوانین خاص داره و در حالت injected نیاز به تحریک برای ادامه نمونه برداری داره .
Triggered injection و Auto-injection هم دونوع تحریک کانال adc برای نمونه برداری هست . یکی به تحریک خارجی احتیاج داره ولی اون یکی خودکار هست .
تو کاربرد ، کارایی این حالتها بیشتر مشخص میشه .
خيلي ممنون
كاربردشم هر وقت شد با مثال روشنتر كنيم خيلي خوبه
ايكليپس رو دانلود كردم و يادم نبود پرتابل هست ! اون تنظيم رو كجا نوشته ؟ كه كيل رو شناسايي كنه؟
ویرایش توسط alishekarriz : 07-03-2012 در ساعت 00:40
كيل رو هم دو هفته هست گرفتم ولي سرچ ميكنم توي هلپ كلا در هيچ موضوعي چيزي پيدا نميكنه .. سرچش نميدونم چه چيزهايي رو پيدا ميكنه
البته الان كه گفتي ديدم .. موضوع دوم هست ..
شما داري تمرين ميكني ؟ مشغولي؟
شما هم یه تست کن ببین این ادیتور چطوره ...
منتظرم یکی حرفی نظری راجب توابع یا واحد rcc بپرسه یا پیشنهادی بده . من روش آموزشم همیشه حلقه بسته هست ! یعنی با فیدبک کار می کنم . منتظرم یکی دو نفر بیاد بگه من یخورده manual میکرو رو نگاه انداختم . پیشرفت این آموزشها بستگی به انگیزه و اشتیاق گروه داره . وگرنه من کارمو دارم ادامه می دم . به عنوان جمع بندی هم فکر کنم بهتره هر سری از این مطالب رو جمع کنم و بفرستم برای مجله ، اینطوری بهتره . نه؟
ضمنا شدیدا به این قضیه اعتقاد دارم که هیج عاملی باعث پیشرفت و رسیدن به مقصود نیست جز انگیزه و پشتکار
سلام دوستان عزيز مخصوصا جناب شكرريز گل و داداشاي گلم
منم منتظرم قطعاتي رو كه جناب مهندس شكرريز عزيز واسم تهيه و ارسال كردن به دستم برسه اونوقت بعد اسمبل كردن قطعات، به جمعتون اضافه بشم.
آقا سعيد شما ادامه بده البته اگه بتوني اين مطالب رو تو مجله بياري خيلي عالي ميشه.
من كه پيگير هستم.
_____________________________________
_____________________________________
سلام
هنوز جواب مناسبي نگرفتم ..
Keil C/C++ compiler in Eclipse IDE
Hello!
Can you help me?
How include Keil C/C++ compiler in Eclipse IDE?
Whether it is possible?
Whether debugging with OpenOCD will earn?
You need to study the Eclipse documentation to understand how to adapt it for any compiler;
You need to study the Keil documentation to understand how to control the Keil tools from the command line.
"Whether debugging with OpenOCD will earn?"
Again, you need to study the OpenOCD documentation to understand what debug features it supports, then study the Keil documentation to see what they provide...
What are you trying to accomplish? Here's how I see it:
1) Using Eclipse as a nicer front-end for editing, including browsing through definitions and references: easily done
2) Feeding error output back to Eclipse so you can fix compile errors outside of Keil uVision: relatively easy
3) Using ARMCC compiler to generate ELF and then debugging natively in Eclipse via OCD: haven't tried this but should work, I think ARMCC output is largely compatible with other ELF/DWARF-producing toolchains
If you want to accomplish 3) you should set up an Eclipse based environment that uses GCC, I think there are several available, and then try to replace the build scripts with your own ARMCC based scripts.
I would love to see Keil dropping uVision completely and going Eclipse but given the large amount of work porting the trace features built into uVision (when used with ULINKPro) I'm not sure this will happen anytime soon. If you're using a cheapo probe that doesn't have trace you're probably just as well off going with a generic GCC/OpenOCD solution.
Andrew
Andrew
You can explain how you should set up the three points.
I can't find much documentation
Thanks
DS5 is Eclipse-based - perhaps you could look there for ideas...?
Hi Joldi,
I haven't tried the third option of using a non-Keil debugger with the output from the Keil compiler. However, setting up Eclipse as an edit/build environment is pretty easy. You can use the "Import" menu and select "Existing code as Makefile project" under the C/C++ category. At that point you can use the normal Eclipse method of setting up include paths and symbols to match your project (that part is a little tedious).
To launch a build from Eclipse you have to change to a custom build step and call a build script. I put mine in the same directory as the Keil project and call it build.cmd:
c:\keil\uv4\uv4.exe -b RSN.uvproj -o errors.txt
type errors.txt
In the C/C++ Build settings for the project (right-click on the project) I uncheck "Use default build command" and enter "build.cmd" as the build command instead. Now, when I select "Build" for my project Eclipse will launch build.cmd and pipe errors.txt to the "Console" window.
The last step is to define a custom error parser for the armcc compiler output, which is a little different from gcc. In "Window|Preferences|C/C++|Build" you add an error parser with these definitions:
Error: (.*)\((\d+)\):\s+error:\s+(.*)
Warning: (.*)\((\d+)\):\s+warning:\s+(.*)
Info: (.*)\((\d+)\):\s+info(.*)
Finally, back in the "C/C++ Build" settings for your project you enable the newly created error parser.
Done!
For additional goodness I also have Subversion integrated into Eclipse so the only thing I do in Keil is debugging.
Andrew Q
سلام مهندس شکرریز
فایل هلپش این هست:
کد:[Keil Installation Folder]/ARM/Hlp/armtools.chm
سلام داداشاي گلم
برد منم راه افتاد. اون برنامه اي كه تو پست 114 هست رو پروگرم كردم بدون دردسر كار كرد.
با J-Link پروگرمش كردم.
ما هم اومديم....
بازم از مهندس شكرريز ممنونم.
_____________________________________
_____________________________________