OpenLinux كجزء من وحدات SIM7600E-H

OpenLinux كجزء من وحدات SIM7600E-H

تتوفر آلية تطوير تطبيق مخصص وتحميله في الوحدة ضمن نظامي التشغيل Linux وWindows. في هذه المقالة سوف نلقي نظرة تفصيلية على كيفية القيام بذلك، وذلك باستخدام أمثلة من SDK المقدمة سيمكوم للحلول اللاسلكية تجميع وتحميل تطبيق مخصص في وحدة نمطية.

قبل كتابة المقال، طلب مني أحد معارفي، بعيدًا عن التطوير لنظام التشغيل Linux، أن أتعامل مع مسألة وصف عملية تطوير التطبيق الخاص بي لوحدة SIM7600E-H بأكبر قدر ممكن من التفاصيل. كان معيار تقييم إمكانية الوصول إلى عرض المواد هو عبارة "حتى أفهم".

أدعوك للتعرف على ما حدث.

يتم استكمال المقالة وتحديثها بانتظام

مقدمة

عادة، يتم استخدام وحدات الاتصالات الخلوية فقط لنقل البيانات والمكالمات الصوتية ونقل الرسائل القصيرة وما شابه ذلك. كل هذا يتم من خلال أوامر AT المرسلة من متحكم تحكم خارجي. ولكن هناك فئة من الوحدات التي تسمح لك بتنفيذ تعليمات برمجية مخصصة يتم تحميلها من الخارج. في بعض الحالات، يؤدي هذا إلى تقليل الميزانية الإجمالية للجهاز بشكل كبير، مما يسمح لك بتثبيت متحكم أبسط (وميزانية متساوية) على اللوحة أو التخلي عنه تمامًا. مع ظهور وحدات LTE التي يتحكم فيها نظام التشغيل Android أو Linux ومواردها القوية، أصبح من الممكن حل أي مهام متاحة للمعالجات الشائعة. ستتحدث هذه المقالة عن SIM7600E-H، الذي يتحكم فيه نظام التشغيل Linux. سننظر في كيفية تنزيل تطبيق قابل للتنفيذ وتشغيله.

من نواحٍ عديدة، تعتمد المادة على مستند "SIM7600 Open Linux Development Quide"، لكن بعض الإضافات، وقبل كل شيء، النسخة الروسية ستكون مفيدة. ستساعد المقالة أولئك الذين بدأوا للتو في إتقان الوحدة على فهم كيفية تنزيل التطبيق التجريبي وتوفير المهارات اللازمة للعمل اللاحق.

باختصار حول من هو SIM7600E-H

SIM7600E-H عبارة عن وحدة مبنية على معالج ARM Cortex-A7 بسرعة 1.3 جيجا هرتز من Qualcomm، مع وجود نظام التشغيل Linux (kernel 3.18.20) بالداخل، وهو قادر على العمل مع نطاقات التردد الأوروبية (بما في ذلك الروسية) 2G/3G/ LTE التي تدعم Cat .4، مما يوفر سرعات تنزيل قصوى تصل إلى 150 ميجابت في الثانية وسرعات تحميل تصل إلى 50 ميجابت في الثانية. تغطي الأجهزة الطرفية الغنية ونطاق درجات الحرارة الصناعية ووجود نظام الملاحة GPS/GLONASS المدمج أي متطلبات للحل المعياري الحديث في مجال M2M.

نبذة عن النظام

تعتمد وحدة SIM7600E-H على نظام التشغيل Linux (kernel 3.18.20). بدوره، تم بناء نظام الملفات على أساس نظام الملفات المسجلة UBIFS (نظام ملفات الصور غير المصنفة).

تشمل الميزات المهمة لنظام الملفات هذا ما يلي:

  • يعمل مع الأقسام، ويسمح لك بإنشاء حجمها أو حذفها أو تغييرها؛
  • ويضمن محاذاة التسجيل عبر حجم الوسائط بالكامل؛
  • يعمل مع الكتل السيئة.
  • يقلل من احتمالية فقدان البيانات أثناء انقطاع التيار الكهربائي أو حالات الفشل الأخرى؛
  • حفظ السجلات.

الوصف مأخوذ من هنا، يوجد أيضًا وصف أكثر تفصيلاً لنظام الملفات هذا.

أولئك. يعد هذا النوع من نظام الملفات مثاليًا لظروف التشغيل القاسية للوحدة ومشاكل الطاقة المحتملة. ولكن هذا لا يعني أن ظروف الطاقة غير المستقرة ستكون الوضع المتوقع لتشغيل الوحدة، بل يشير فقط إلى قابلية بقاء الجهاز بشكل أكبر.

ذاكرة

يتم توزيع مناطق الذاكرة على النحو التالي:

OpenLinux كجزء من وحدات SIM7600E-H

هناك ثلاثة مجالات رئيسية يجب تسليط الضوء عليها:

ubi0:rootfs – للقراءة فقط ويحتوي على نواة لينكس نفسها
ubi0:usrfs - يستخدم في المقام الأول لبرامج المستخدم وتخزين البيانات
ubi0:cahcefs - محجوز لتحديثات FOTA. إذا كانت المساحة المتوفرة غير كافية لتنزيل التحديث، فسيقوم النظام بحذف الملفات غير المستخدمة وبالتالي تحرير المساحة. ولكن لأسباب أمنية، يجب ألا تضع ملفاتك هناك.

وتتوزع الأقسام الثلاثة على النحو التالي:

نظام الملفات
مقاس
مستعملة
متوفرة
يستخدم٪
شنت على

ubi0:rootfs
40.7M
36.2M
4.4M
89%
/

ubi0:usrfs
10.5M
360K
10.1M
3%
/البيانات

ubi0:cachefs
50.3M
20K
47.7M
0%
/مخبأ

الوظائف المتاحة

كما ذكر أعلاه، تم بناء الوحدة على شرائح Cortex A7 من Qualcomm. سيكون من الخطأ عدم توفير مثل هذا المركز عالي الأداء لمعالجة برنامج المستخدم وتفريغ المعالج الرئيسي للجهاز عن طريق تفريغ جزء من البرنامج إلى الوحدة.

بالنسبة لبرنامج المستخدم، ستتوفر لنا أوضاع التشغيل الطرفية التالية:

رقم التعريف الشخصي
الاسم
رقم GPIO لنظام
حدث اساسي
وظيفة1
وظيفة2
سحب
مقاطعة الاستيقاظ

6
SPI_CLK
-
UART1_RTS
-
-
ب-PD
-

7
SPI_MISO
-
UART1_Rx
-
-
ب-PD
-

8
SPI_MOSI
-
UART1_Tx
-
-
ب-PD
-

9
SPI_CS
-
UART1_CTS
-
-
ب-PD
-

21
SD_CMD
-
بطاقة الذاكرة
-
-
ب-PD
-

22
SD_DATA0
-
بطاقة الذاكرة
-
-
ب-PD
-

23
SD_DATA1
-
بطاقة الذاكرة
-
-
ب-PD
-

24
SD_DATA2
-
بطاقة الذاكرة
-
-
ب-PD
-

25
SD_DATA3
-
بطاقة الذاكرة
-
-
ب-PD
-

26
SD_CLK
-
بطاقة الذاكرة
-
-
ب-بن
-

27
SDIO_DATA1
-
WLAN
-
-
ب-PD
-

28
SDIO_DATA2
-
WLAN
-
-
ب-PD
-

29
SDIO_CMD
-
WLAN
-
-
ب-PD
-

30
SDIO_DATA0
-
WLAN
-
-
ب-PD
-

31
SDIO_DATA3
-
WLAN
-
-
ب-PD
-

32
SDIO_CLK
-
WLAN
-
-
ب-بن
-

33
GPIO3
GPIO_1020
MIFI_POWER_EN
GPIO
MIFI_POWER_EN
ب-بو
-

34
GPIO6
GPIO_1023
MIFI_SLEEP_CLK
GPIO
MIFI_SLEEP_CLK
ب-PD
-

46
ADC2.
-
ADC
-
-
-
-

47
ADC1.
-
ADC
-
-
ب-بو
-

48
SD_DET
GPIO_26
GPIO
GPIO
SD_DET
ب-PD
X

49
الوضع
GPIO_52
الحالة
GPIO
الحالة
ب-PD
X

50
GPIO43
GPIO_36
MIFI_COEX
GPIO
MIFI_COEX
ب-PD
-

52
GPIO41
GPIO_79
BT
GPIO
BT
ب-PD
X

55
SCL
-
I2C_SCL
-
-
ب-PD
-

56
SDA
-
I2C_SDA
-
-
ب-بو
-

66
RTS
-
UART2_RTS
-
-
ب-PD
-

67
CTS
-
UART2_CTS
-
-
ب-PD
-

68
آر إكس دي
-
UART2_Rx
-
-
ب-PD
-

69
RI
-
GPIO(RI)
-
-
ب-PD
-

70
DCD
-
GPIO
-
-
ب-PD
-

71
TXD
-
UART2_Tx
-
-
ب-PD
-

72
DTR
-
GPIO (DTR)
-
-
ب-PD
X

73
PCM_OUT
-
PCM
-
-
ب-PD
-

74
PCM_IN
-
PCM
-
-
ب-PD
-

75
PCM_SYNC
-
PCM
-
-
ب-PD
-

76
PCM_CLK
-
PCM
-
-
ب-بو
-

87
GPIO77
GPIO77
BT
GPIO
BT
ب-PD
-

أوافق، القائمة مثيرة للإعجاب وملاحظة: يتم استخدام جزء من الأجهزة الطرفية لتشغيل الوحدة كجهاز توجيه. أولئك. بناء على هذه الوحدة، يمكنك إنشاء جهاز توجيه صغير يقوم بتوزيع الإنترنت عبر شبكة Wi-Fi. بالمناسبة، هناك حل جاهز يسمى SIM7600E-H-MIFI وهو عبارة عن بطاقة MiniPCIE مع وحدة SIM7600E-H ملحومة والعديد من دبابيس الهوائي، أحدها هوائي Wi-Fi. ومع ذلك، هذا موضوع لمقال منفصل.

الاربعاء (ليس يوم من أيام الأسبوع)

سيمكوم للحلول اللاسلكية توفير الفرصة للمطورين لاختيار بيئة التطوير الأكثر شهرة لنظام التشغيل Linux أو Windows. إذا كنا نتحدث عن تطبيق واحد قابل للتنفيذ على الوحدة النمطية، فمن الأفضل اختيار Windows، فسيكون أسرع وأسهل. إذا كان من المتوقع وجود بنية تطبيق معقدة وترقيات لاحقة، فمن الأفضل استخدام Linux. نحتاج أيضًا إلى نظام Linux لتجميع الملفات القابلة للتنفيذ لتحميلها لاحقًا في الوحدة، حيث يكفي وجود جهاز افتراضي للتجميع.

ما تحتاجه ليس متاحًا للتنزيل مجانًا - SDK، والذي يمكنك طلبه من الموزع الخاص بك.

تثبيت الأدوات المساعدة للعمل مع الوحدة

فيما يلي، سنعمل ضمن نظام التشغيل Windows باعتباره نظام التشغيل الأكثر شهرة لدى معظم المستخدمين.

سنحتاج إلى تثبيت البرنامج اللازم في بضع خطوات بسيطة لإتقان العمل مع الوحدة فيما بعد:

  1. جنو / لينكس
  2. سيغوين
  3. سائق
  4. اعلان

تثبيت جنو/لينكس

لإنشاء التطبيق، يمكنك استخدام أي مترجم متوافق مع ARM-Linux. سوف نستخدم SourceryCodeBenchLiteARM GNU/Linuxtranslater المتاح للتنزيل على صلة.

للتأكد من تثبيت جميع المكونات بشكل صحيح، سأترك بعض لقطات الشاشة لعملية التثبيت. من حيث المبدأ، لا يوجد شيء معقد في التثبيت.

للتأكد من تثبيت جميع المكونات بشكل صحيح، سأترك بعض لقطات الشاشة لعملية التثبيت. من حيث المبدأ، لا يوجد شيء معقد في التثبيت.

  1. نحن نقبل اتفاقية الترخيص
    OpenLinux كجزء من وحدات SIM7600E-H
  2. حدد مجلد التثبيت
    OpenLinux كجزء من وحدات SIM7600E-H
  3. نترك المكونات الضرورية دون تغيير
    OpenLinux كجزء من وحدات SIM7600E-H
  4. اترك الأمر كما هو
    OpenLinux كجزء من وحدات SIM7600E-H
  5. عدة مرات "التالي" و"التثبيت" وهذا كل شيء
    OpenLinux كجزء من وحدات SIM7600E-H

تثبيت سيجوين

علاوة على ذلك، من أجل التطوير، ستحتاج إلى مجموعة من المكتبات والأدوات المساعدة من المجموعة المقدمة سيغوين. كل شيء بسيط هنا، يمكن تنزيل الإصدار الحالي من Cygwin مجانًا على الموقع الرسمي للمشروع، وفي وقت كتابة هذا التقرير، كان الإصدار 3.1.5 متاحًا، وهو ما استخدمناه عند إعداد المادة.

لا يوجد شيء معقد في تثبيت Cygwin، الشيء الوحيد الذي تحتاج إلى تحديده هو المرآة التي سيقوم المثبت بتنزيل الملفات الضرورية منها، واختيار أي منها وتثبيته، بالإضافة إلى مجموعة من الأدوات المساعدة والمكتبات، مع ترك جميع المكتبات المتاحة و المرافق المحددة.

تثبيت برنامج التشغيل

بعد توصيل الوحدة بجهاز الكمبيوتر، ستحتاج إلى تثبيت برامج التشغيل. يمكن طلبها من الموزع الخاص بك (مستحسن). لا أنصحك بالبحث في الإنترنت بنفسك، لأن... قد يستغرق الأمر وقتًا طويلاً للعثور على سبب تعارض الجهاز.

OpenLinux كجزء من وحدات SIM7600E-H

من بين المنافذ المختارة نرى ما يلي:

Windows
لينكس
وصف

تشخيصات SimTech HS-USB
المسلسل USB
واجهة التشخيص

SimTech HS-USB NMEA
المسلسل USB
واجهة نظام تحديد المواقع NMEA

منفذ SimTech HS-USB AT
المسلسل USB
في واجهة المنفذ

مودم سيم تك HS-USB
المسلسل USB
واجهة منفذ المودم

SimTech HS-USB الصوت
المسلسل USB
واجهة USB الصوت

محول SimTech HS-USB WWAN
يو اس بي نت
واجهة NDIS WWAN

واجهة ADB المركبة من Android
يو اس بي ايه دي بي
يضيف Android منفذ التصحيح

كما لاحظت على الأرجح، لا يوجد USB ADB بين المنافذ الموجودة في لقطة الشاشة، وذلك لأن منفذ ADB في الوحدة مغلق افتراضيًا وتحتاج إلى تمكينه عن طريق إرسال الأمر "AT+CUSBADB=1" إلى AT منفذ الوحدة وأعد تشغيلها (يمكن القيام بذلك باستخدام الأمر "AT+CRESET").

ونتيجة لذلك، نحصل على الواجهة المطلوبة في مدير الأجهزة:

OpenLinux كجزء من وحدات SIM7600E-H

لقد انتهينا من برامج التشغيل، فلننتقل إلى ADB.

تثبيت بنك التنمية الآسيوي

انتقل إلى الموقع الرسمي لمطور Android صلة. لن نقوم بتنزيل Android Studio الضخم، نحتاج فقط إلى سطر الأوامر، المتاح للتنزيل عبر الرابط "Download SDK Platform-Tools for Windows".

OpenLinux كجزء من وحدات SIM7600E-H

قم بتنزيل الأرشيف الناتج وفك ضغطه إلى جذر محرك الأقراص C.

متغيرات البيئة

بعد تثبيت Cygwin، ستحتاج إلى إضافة المسار Cygwin/bin/ إلى متغيرات بيئة التطوير (لوحة التحكم الكلاسيكية → النظام → إعدادات النظام المتقدمة → المتقدمة → متغيرات البيئة → متغيرات النظام → المسار → تحرير) كما هو موضح في لقطة الشاشة أدناه:

OpenLinux كجزء من وحدات SIM7600E-H

وبالمثل، قم بإضافة المسار إلى أرشيف ADB الذي تم تنزيله وتفكيكه إلى جذر محرك الأقراص C.

OpenLinux كجزء من وحدات SIM7600E-H

انقر فوق "موافق" عدة مرات وأعد تشغيل الكمبيوتر.

بعد إعادة التشغيل، يمكنك بسهولة التحقق مما إذا كان ADB يعمل بشكل صحيح عن طريق فتح سطر الأوامر (Win+R → cmd) وكتابة الأمر "adb version". نحصل على شيء مثل هذا:

OpenLinux كجزء من وحدات SIM7600E-H

لنقم بتوصيل الوحدة بجهاز الكمبيوتر (إذا حدث أن تم قطع اتصالها) وتحقق مما إذا كان ADB يراها باستخدام الأمر "adb devices":

OpenLinux كجزء من وحدات SIM7600E-H

تم ذلك، وبذلك يكتمل تكوين الاتصال بالوحدة ويمكننا تشغيل الصدفة للعمل مع الوحدة.

OpenLinux كجزء من وحدات SIM7600E-H

تفريغ وتجميع SDK

الآن بعد أن أصبح لدينا إمكانية الوصول إلى الصدفة ويمكننا البدء في العمل باستخدام سطر أوامر الوحدة، فلنحاول تجميع تطبيقنا الأول لتحميله في الوحدة.

قد يجد الكثير من الناس صعوبة في ذلك! لأن تعمل الوحدة على نظام التشغيل Linux؛ ولتجنب الاصطدامات عند تجميع التعليمات البرمجية ضمن Windows، فمن الأفضل تجميعها في البيئة الأصلية - Linux.

لن نتناول بالتفصيل كيف يمكنك تثبيته على جهاز افتراضي في حالة عدم وجود Linux والرغبة في تثبيته على جهازك. سنستخدم VirtualBox، ونثبت الإصدار 20.04 من Ubuntu (الإصدار الحالي وقت كتابة هذا التقرير) وسنبدأ بموجبه العمل مع المترجمين وحزم SDK وما إلى ذلك.

دعنا ننتقل إلى بيئة Linux ونقوم بفك ضغط الأرشيف المستلم من الموزع.

simcom@VirtualBox:~/Desktop/OpenLinux$ sudo tar -xzf MDM9x07_OL_2U_22_V1.12_191227.tar.gz 

انتقل إلى دليل sim_open_sdk وأضف البيئة:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ cd sim_open_sdk
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ source sim_crosscompile/sim-crosscompile-env-init 

نبقى في نفس المجلد وننفذ الأوامر اللاحقة أثناء وجوده فيه.
قم بتثبيت مكتبة libncurses5-dev إذا لم يتم تثبيتها:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get update && sudo apt-get install libncurses5-dev -y

بايثون، إذا لم يتم تثبيته أيضًا:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install python -y

و دول مجلس التعاون الخليجي:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ sudo apt-get install gcc

التحويل البرمجي:

الآن نحن بحاجة إلى تجميع عدة ملفات، نقوم بتشغيل الأوامر التالية بالتسلسل.

إذا انبثقت نافذة تكوين kernel أثناء الترجمة، فما عليك سوى تحديد Exit والعودة إلى وحدة التحكم؛ ولسنا بحاجة إلى تكوين kernel الآن.

نحن نفعل:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make

تجميع محمل الإقلاع:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make aboot

تجميع النواة:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_menuconfig
simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel

تجميع نظام الملفات الجذر:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make rootfs

بالنسبة لمستخدمي Linux، سيكون من المناسب تجميع برنامج تشغيل الوحدة:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make kernel_module

لنقم بتجميع العرض التوضيحي:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ make demo

وبعد ذلك ستظهر عدة ملفات جديدة في دليل sim_open_sdk/output:

simcom@VirtualBox:~/Desktop/OpenLinux/sim_open_sdk$ ls output/
appsboot.mbn  boot.img  demo_app  helloworld  system.img

عرض

دعونا نحاول تحميل العرض التوضيحي في وحدتنا ونرى ما سيخرج منه.

تحميل

في دليل sim_open_sdk يمكننا رؤية الملف demo_app. نأخذه وننقله إلى جذر محرك الأقراص C على الكمبيوتر الذي تتصل به الوحدة. ثم قم بتشغيل سطر أوامر Windows (Win+R -> cmd) وأدخل:

C:>adb push C:demo_app /data/

ستخبرنا وحدة التحكم بما يلي:

C:demo_app: 1 file pushed, 0 skipped. 151.4 MB/s (838900 bytes in 0.005s)

هذا يعني أنه تم إرسال الملف بنجاح إلى الوحدة وكل ما علينا فعله هو تشغيله. دعونا لا نتردد.

نحن نفعل:

C:>adb shell

نقوم بتوسيع حقوق الملف الذي تم تنزيله:

/ # cdhmod 777 /data/demo_app

ونركض:

/ # /data/demo_app

في نفس وحدة التحكم، ستخبرنا الوحدة بما يلي:

SDK_VER : SIM_SDK_VER_20191205
DEMO_VER: SIM_SDK_VER_20191205

Please select an option to test from the items listed below.

1. WIFI                       2. VOICE CALL
3. DATA CALL                  4. SMS
5. WDS(APN)                   6. NAS
7. AT                         8. OTA
9. TTS                        10. GPIO
11. GPS                       12. Bluetooth
13. TCP/UDP                   14. Timer
15. ADC                       16. I2C
17. UIM(SimCard)              18. DMS(IMEI,MEID)
19. UART                      20. SPI
21. Version                   22. Ethernet
23. FTP                       24. SSL
25. HTTP(S)                   26. FTP(S)
27. MQTT(S)                   28. ALSA
29. DEV                       30. AUDIO
31. JSON                      32. LBS
99. EXIT
Option >   

دعونا نلقي نظرة على IMEI للوحدة، أدخل 7 (التبديل إلى وضع الأوامر) ثم أدخل 5:

Please select an option to test from the items listed below.

1. WIFI                       2. VOICE CALL
3. DATA CALL                  4. SMS
5. WDS(APN)                   6. NAS
7. AT                         8. OTA
9. TTS                        10. GPIO
11. GPS                       12. Bluetooth
13. TCP/UDP                   14. Timer
15. ADC                       16. I2C
17. UIM(SimCard)              18. DMS(IMEI,MEID)
19. UART                      20. SPI
21. Version                   22. Ethernet
23. FTP                       24. SSL
25. HTTP(S)                   26. FTP(S)
27. MQTT(S)                   28. ALSA
29. DEV                       30. AUDIO
31. JSON                      32. LBS
99. EXIT
Option > 7

Please select an option to test from the items listed below.

1. get Module Version         2. get CSQ
3. get CREG                   4. get ICCID
5. get IMEI                   6. get CIMI
99. back
Option > 5
IMEI: 867584030090489

Please select an option to test from the items listed below.

1. get Module Version         2. get CSQ
3. get CREG                   4. get ICCID
5. get IMEI                   6. get CIMI
99. back
Option >

بهذه الطريقة سوف نرى IMEI للوحدة.

وختاما

آمل أن نكون قادرين على الحصول على فكرة عامة عن كيفية البدء بالوحدة. في المقالات التالية، سنلقي نظرة فاحصة على الإمكانيات التي توفرها منصة SIM7600E-H، بالإضافة إلى كيفية تحديث التطبيق الخاص بك عن بعد في الوحدة.

أدعوك لطرح الأسئلة في التعليقات، وكذلك الإشارة إلى جانب إمكانات الوحدة الذي يجب أن ينعكس في المقالات اللاحقة.

المصدر: www.habr.com

إضافة تعليق