Stlink: بناء خطأ من تطوير الفرع ، مشاكل وحدة المعالجة المركزية

تم إنشاؤها على ٢٠ أبريل ٢٠٢٠  ·  7تعليقات  ·  مصدر: stlink-org/stlink

أحاول بناء الالتزام c7874f805c63c60285f2b190f6589da8ae5e47fa
وفشلت مع هذه الأخطاء:

/builddir/build/BUILD/stlink-org-stlink-c7874f8/tests/usb.c: In function 'main':
/builddir/build/BUILD/stlink-org-stlink-c7874f8/tests/usb.c:34:9: error: 'cpuid.revision' may be used uninitialized in this func
tion [-Werror=maybe-uninitialized]
   34 |         printf("cpuid:part = %#x, rev = %#x\n", cpuid.part, cpuid.revision);
      |         ^
/builddir/build/BUILD/stlink-org-stlink-c7874f8/tests/usb.c:31:27: note: 'cpuid.revision' was declared here
   31 |         cortex_m3_cpuid_t cpuid;
      |                           ^
/builddir/build/BUILD/stlink-org-stlink-c7874f8/tests/usb.c:34:9: error: 'cpuid.part' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   34 |         printf("cpuid:part = %#x, rev = %#x\n", cpuid.part, cpuid.revision);
      |         ^
/builddir/build/BUILD/stlink-org-stlink-c7874f8/tests/usb.c:31:27: note: 'cpuid.part' was declared here
   31 |         cortex_m3_cpuid_t cpuid;
      |                           ^
/builddir/build/BUILD/stlink-org-stlink-c7874f8/tests/usb.c:33:9: error: 'cpuid.variant' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   33 |         printf("cpuid:impl_id = %0#x, variant = %#x\n", cpuid.implementer_id, cpuid.variant);
      |         ^
/builddir/build/BUILD/stlink-org-stlink-c7874f8/tests/usb.c:31:27: note: 'cpuid.variant' was declared here
   31 |         cortex_m3_cpuid_t cpuid;
      |                           ^
/builddir/build/BUILD/stlink-org-stlink-c7874f8/tests/usb.c:33:9: error: 'cpuid.implementer_id' may be used uninitialized in this function [-Werror=maybe-uninitialized]
   33 |         printf("cpuid:impl_id = %0#x, variant = %#x\n", cpuid.implementer_id, cpuid.variant);
      |         ^
/builddir/build/BUILD/stlink-org-stlink-c7874f8/tests/usb.c:31:27: note: 'cpuid.implementer_id' was declared here
   31 |         cortex_m3_cpuid_t cpuid;
      |                           ^
lto1: all warnings being treated as errors

كيف يمكن اصلاحها؟

bucompilation bufixed errocompilation olinux staturesolved

ال 7 كومينتر

في نظام macOS ، تُبنى الكود جيدًا.

في src/common.c

int stlink_cpu_id(stlink_t *sl, cortex_m3_cpuid_t *cpuid) {
    uint32_t raw;

    if (stlink_read_debug32(sl, STLINK_REG_CM3_CPUID, &raw))
        return -1;

    cpuid->implementer_id = (raw >> 24) & 0x7f;
    cpuid->variant = (raw >> 20) & 0xf;
    cpuid->part = (raw >> 4) & 0xfff;
    cpuid->revision = raw & 0xf;
    return 0;
}

يبدو أنه تم بالفعل تهيئة cpuid.part و cpuid.revision هنا. ربما يسيء المترجم التصرف؟

    if (stlink_read_debug32(sl, STLINK_REG_CM3_CPUID, &raw))
        return -1;

في هذه الحالة cpuid. * ابق غير مهيأ.

على أوبونتو تم تجميعها بنجاح أيضًا. قد تستخدم وحدة المعالجة المركزية المتغيرة غير محدود في حالة الخطأ قراءة التسجيل.

--- أ / الاختبارات / usb.c.
+++ ب / الاختبارات / usb.c
-29،7 +29،11int main (int ac، char ** av) {
printf ("- core_id:٪ # x \ n"، sl-> core_id)؛

     cortex_m3_cpuid_t cpuid;

- stlink_cpu_id (sl، & cpuid) ؛
+ إذا (stlink_cpu_id (sl، & cpuid))
+ {
+ printf ("رقاقة غير معروفة \ n") ؛
+ memset (& cpuid، 0، sizeof (cortex_m3_cpuid_t))
+}
printf ("cpuid: impl_id =٪ 0 # x ، المتغير =٪ # x \ n" ، cpuid.implementer_id ، cpuid.variant) ؛
printf ("cpuid: part =٪ # x ، rev =٪ # x \ n" ، cpuid.part ، cpuid.revision) ؛

أعتقد أنه يمكن إصلاحه عن طريق إضافة فحص قيمة الإرجاع على stlink_cpu_id وتهيئة هذه القيم إلى الصفر. وسوف محاولة إعطائها.

لدي -Werror=maybe-uninitialized لأنه أثناء التهيئة:

-- Performing Test C_SUPPORTS_WMAYBE_UNINITIALIZED
-- Performing Test C_SUPPORTS_WMAYBE_UNINITIALIZED - Success

Vascom هل يمكنك اختبار فرعي https://github.com/chenguokai/stlink/tree/issue937 ؟
إذا نجحت ، سأرفع العلاقات العامة.

Vascom هل يمكنك اختبار فرعي https://github.com/chenguokai/stlink/tree/issue937 ؟
إذا نجحت ، سأرفع العلاقات العامة.

نعم إنه يعمل.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

gcohara picture gcohara  ·  5تعليقات

gorynch picture gorynch  ·  5تعليقات

bolorkhuu picture bolorkhuu  ·  11تعليقات

purjus74 picture purjus74  ·  12تعليقات

yosoufe picture yosoufe  ·  12تعليقات