بنده به عنوان اولین پروژه ی ARM میخوام روی میکروی AT91SAM7S256 رمزنگاری RSA انجام بدم. بعد یه مقدار جستجو به لایبرری mbed TLS رسیدم (که سابقا اسمش PolarSSL بوده- و سابق تر XySSL). دانلودش کردم و داخل دایرکتوری پروژه ای که ساختنتش رو توضیح دادم Extractش کردم.
برای ساخت پروژه :
داخل نرم افزار Keil از منوی Project یه پروژه ی جدید ساختم و از بین میکروهای Atmel مدل AT91SAM7S256 رو انتخاب کردم و OK رو زدم و پنجره ی زیر باز شد:

خب Yes رو زدم و توی مرحله ی بعد از از مسیر
به Include Path، مسیر اون پوشه ی Extract شده ی mbed TLS رو دادم و اوکی کردم.
توی مرحله ی آخر با کلیک راست کردن روی اسم پروژه و انتخاب Add files to group AGroupName فایل های rsa.c و rsa.h رو از داخل فایل های لایبرری mbed TLS به پروژه اضافه کردم و در نهایت هم یه فایل main.c با محتویاتی پایین نوشتم، ساختم و اون رو هم اضافه کردم:

تا به این صورت شد:

این هم محتوای main.c، که همونطور که میبینید، در واقع خالیه و صرفا برای تست نوشتم :
در نهایت هم از منوی Project رویBuild all target files کلیک کردم و خطاهای زیر ظاهر شد:
Build target 'Target 1'
... assembling SAM7.s
... compiling rsa.c
mbedtls-2.0.0\library\rsa.c(30): error: #5: cannot open source input file "mbedtls/config.h": No such file or directory
... compiling main.c
main.c(1): error: #5: cannot open source input file "rsa.h": No such file or directory
Target not created
خب من به صورت دستی فایل config.h رو جستجو کردم و کنار فایل main.c گذاشتم و بعد با همون کلیک راست کردن و Add files to group AGroupName اون رو به پروژه اضافه کردم و "mbedtls/config.h" رو هم داخل rsa.c به "config.h" تغییر دادم تا این مشکل بر طرف شد. برای rsa.h هم تقریبا به طریق مشابه. بعد مجدد سعی کردم Build کنم ولی باز خطای مشابهی برای دو تا فایل دیگه دریافت کردم. جابجایی و اضافه کردن فایل ها رو برای 14 تا فایل انجام دادم و باز خطاهای این مدلی جدید ظاهر میشد. بعد از خودم پرسیم که این آیا منطقی و درسته و بهترین راهه؟ یا راه بهتری هست؟
چون نتونستم جوابم رو داخل اینترنت پیدا کنم مزاحم شما شدم و خواستم راهنماییم کنید توی مورد بالا و توی این سه تا سوال:
1- به عنوان یه فرد مبتدی و به عنوان کسی که قصد داره پروژه ی فوق رو انجام بده، آیا بهتره با keil شروع به کار کنم یا با IAR؟اصلا محیط ویندوز یا داخل لینوکس؟
2- محتویات لایبرری mbed TLS اینجور نشون میده که برای لینوکس هستش (پسوند gz فایل اولیه و فایل های make و ... داخلش). آیا این به این معنیه که من نمیتونم ازش داخل ویندوز استفاده کنم؟
3- داخل پروژه ی فعلی من میخوام فقط از الگوریتم rsa استفاده کنم و شاید اضافه کردن فایل های مرتبط این لایبرری به صورت تک به تک منطقی باشه، ولی اگه بخوام از کل الگوریتم های لایبرری استفاده کنم، قطعا راه زمان بری هستش. آیا روشی وجود داره که کلا با چند تا کلیک فایل رو اضافه کنم؟
پیش پیش بابت وقتی که میذارید صمیمانه تشکر
برای ساخت پروژه :
داخل نرم افزار Keil از منوی Project یه پروژه ی جدید ساختم و از بین میکروهای Atmel مدل AT91SAM7S256 رو انتخاب کردم و OK رو زدم و پنجره ی زیر باز شد:

خب Yes رو زدم و توی مرحله ی بعد از از مسیر
++Project >> Option for Target "MyProjectName" >> C\C
به Include Path، مسیر اون پوشه ی Extract شده ی mbed TLS رو دادم و اوکی کردم.
توی مرحله ی آخر با کلیک راست کردن روی اسم پروژه و انتخاب Add files to group AGroupName فایل های rsa.c و rsa.h رو از داخل فایل های لایبرری mbed TLS به پروژه اضافه کردم و در نهایت هم یه فایل main.c با محتویاتی پایین نوشتم، ساختم و اون رو هم اضافه کردم:

تا به این صورت شد:

این هم محتوای main.c، که همونطور که میبینید، در واقع خالیه و صرفا برای تست نوشتم :
کد:
#include <rsa.h> int main(){ return 0; }
Build target 'Target 1'
... assembling SAM7.s
... compiling rsa.c
mbedtls-2.0.0\library\rsa.c(30): error: #5: cannot open source input file "mbedtls/config.h": No such file or directory
... compiling main.c
main.c(1): error: #5: cannot open source input file "rsa.h": No such file or directory
Target not created
خب من به صورت دستی فایل config.h رو جستجو کردم و کنار فایل main.c گذاشتم و بعد با همون کلیک راست کردن و Add files to group AGroupName اون رو به پروژه اضافه کردم و "mbedtls/config.h" رو هم داخل rsa.c به "config.h" تغییر دادم تا این مشکل بر طرف شد. برای rsa.h هم تقریبا به طریق مشابه. بعد مجدد سعی کردم Build کنم ولی باز خطای مشابهی برای دو تا فایل دیگه دریافت کردم. جابجایی و اضافه کردن فایل ها رو برای 14 تا فایل انجام دادم و باز خطاهای این مدلی جدید ظاهر میشد. بعد از خودم پرسیم که این آیا منطقی و درسته و بهترین راهه؟ یا راه بهتری هست؟
چون نتونستم جوابم رو داخل اینترنت پیدا کنم مزاحم شما شدم و خواستم راهنماییم کنید توی مورد بالا و توی این سه تا سوال:
1- به عنوان یه فرد مبتدی و به عنوان کسی که قصد داره پروژه ی فوق رو انجام بده، آیا بهتره با keil شروع به کار کنم یا با IAR؟اصلا محیط ویندوز یا داخل لینوکس؟
2- محتویات لایبرری mbed TLS اینجور نشون میده که برای لینوکس هستش (پسوند gz فایل اولیه و فایل های make و ... داخلش). آیا این به این معنیه که من نمیتونم ازش داخل ویندوز استفاده کنم؟
3- داخل پروژه ی فعلی من میخوام فقط از الگوریتم rsa استفاده کنم و شاید اضافه کردن فایل های مرتبط این لایبرری به صورت تک به تک منطقی باشه، ولی اگه بخوام از کل الگوریتم های لایبرری استفاده کنم، قطعا راه زمان بری هستش. آیا روشی وجود داره که کلا با چند تا کلیک فایل رو اضافه کنم؟
پیش پیش بابت وقتی که میذارید صمیمانه تشکر

دیدگاه