0
  • ÁÄÌìÏûÏ¢
  • ϵͳÏûÏ¢
  • ÆÀÂÛÓë»Ø¸´
µÇ¼ºóÄã¿ÉÒÔ
  • ÏÂÔØº£Á¿×ÊÁÏ
  • ѧϰÔÚÏ߿γÌ
  • ¹Û¿´¼¼ÊõÊÓÆµ
  • дÎÄÕÂ/·¢Ìû/¼ÓÈëÉçÇø
»áÔ±ÖÐÐÄ
´´×÷ÖÐÐÄ

ÍêÉÆ×ÊÁÏÈøü¶àС»ï°éÈÏʶÄ㣬»¹ÄÜÁìÈ¡20»ý·ÖŶ£¬Á¢¼´ÍêÉÆ>

3ÌìÄÚ²»ÔÙÌáʾ

ȫ־R128оƬFreeRTOSϵͳ֧³ÖµÄÈí¼þµ÷ÊÔ·½·¨½éÉÜ

¶¬ÖÁ×Ó ? À´Ô´£ºØ­budboool ? ×÷ÕߣºØ­budboool ? 2023-11-23 17:45 ? ´ÎÔĶÁ
¼ÓÈë½»Á÷Ⱥ
΢ÐÅСÖúÊÖ¶þάÂë

ɨÂëÌí¼ÓСÖúÊÖ

¼ÓÈ빤³Ìʦ½»Á÷Ⱥ

Õ»»ØËÝ

Õ»»ØËÝÊÇÖ¸»ñÈ¡³ÌÐòµÄµ÷ÓÃÁ´ÐÅÏ¢£¬Í¨¹ýÕ»»ØËÝÐÅÏ¢£¬ÄܰïÖú¿ª·¢Õß¿ìËÙÀíÇå³ÌÐòÖ´ÐÐÁ÷³Ì£¬Ìá¸ß·ÖÎöÎÊÌâµÄЧÂÊ¡£

ÓÃ;

  1. »ñÈ¡³ÌÐòµ÷ÓùØÏµ£¬ÀíÇå³ÌÐòÖ´ÐÐÁ÷³Ì¡£
  2. ÔÚϵͳ´¥·¢Ò쳣ʱ£¬¿ìËÙ·ÖÎöÒì³£ËùÔÚλÖü°Æäµ÷ÓÃÁ´¡£
  3. ÔÚ·ÖÎöijÈÎÎñ¿¨ËÀÔ­Òòʱ£¬¿ÉÒÔͨ¹ý¶Ô¸ÃÈÎÎñ½øÐÐÕ»»ØËÝ£¬¿ìËÙ·ÖÎö¿¨ËÀµã¡£
  4. ·ÖÎöijЩ×ÊÔ´Èç sem¡¢mutex µÄ»ñÈ¡¡¢ÊÍ·ÅÐÅÏ¢¡£

ÅäÖÃ

Kernel Options ??? >
    Backtrace Select (debug backtrace by machine code) ??? >
        (X) debug backtrace by machine code  // ͨ¹ý½âÎö»úÆ÷Â뷽ʽ½øÐлØËÝ
        ( ) debug backtrace by frame pointer // ͨ¹ý½âÎöframe pointer·½Ê½½øÐлØËÝ
        ( ) no backtrace                     // ¹Ø±ÕÕ»»ØËÝ

½Ó¿Ú½éÉÜ

int backtrace(char *taskname, void *output[], int size, int offset, print_function print_func);

²ÎÊý£º

  • taskname : ÈÎÎñÃû×Ö£»¿ÉΪNULL£¬±íʾ»ØËݵ±Ç°ÈÎÎñ
  • output : Õ»»ØËݽá¹û±£´æÊý×飬¿ÉÒÔΪNULL
  • size : outputÊý×é´óС£¬¿ÉΪ0
  • offset : Õ»»ØËݱ£´æ½á¹ûµÄÆ«ÒÆ£¬¿ÉΪ0
  • print_func : ´òÓ¡º¯Êý£¬¿ÉÓÃprintf

·µ»ØÖµ£º

  • level : »ØËݲã´Î

ÖÕ¶ËÃüÁî

ÔÚÉ豸¶ËµÄÖն˽çÃæÉÏÖ§³ÖʹÓà backtrace ÃüÁî¶ÔÖ¸¶¨µÄÈÎÎñ½øÐлØËÝ¡£

×÷Ó㺲鿴ָ¶¨ÈÎÎñ¶ÑÕ»»ØËÝÐÅÏ¢
Ó÷¨£ºbacktrace [taskname]

»ØËÝÐÅÏ¢½âÎö

  1. ÔÚ PC ¶Ë¿ª·¢»·¾³ÖУ¬ÔÚ FreeRTOS SDK ¸ùĿ¼Ï£¬Ö´ÐÐ source envsetup.sh
  2. ÔÚ PC ¶Ë¿ª·¢»·¾³ÖУ¬ÔÚ FreeRTOS SDK µÄ lichee/rtos Ŀ¼Ï´´½¨ backtrace.txt Îļþ£¬È»ºó½«»ØËÝÐÅÏ¢´ÓÖÕ¶ËÖп½±´³öÀ´£¬²¢±£´æµ½ backtrace.txt ÎļþÖС£
  3. ÔÚ PC ¶Ë¿ª·¢»·¾³ÖУ¬Ö´ÐÐ callstack backtrace.txt ÃüÁ»á»ñÈ¡ÒÔÏ»ØËÝÐÅÏ¢¡£
    mhd_start_scan at /xxx/mhd_apps_scan.c:334 #mhd_start_scan±íʾº¯ÊýÃû£¬/xxx/mhd_apps_scan.c±íʾº¯ÊýËùÔÚµÄÎļþ·¾¶£¬334±íʾº¯Êýµ÷Óô¦µÄÐкš£
    mhd_softap_start at /xxx/mhd_apps_softap.c:263
    wifi_recv_cb at /xxx/mhd_api_test.c:624
    mhd_get_host_sleep at /xxx/mhd_apps_wifi.c:81
    bswap_16 at /xxx/aw?alsa?lib/bswap.h:39
    (inlined by) convert_from_s16 at ??:?
    linear_init at /xxx/pcm_rate_linear.c:378
    resampler_basic_interpolate_single at /xxx/resample_speexdsp.c:395
    __fill_vb2_buffer at /xxx/videobuf2?v4l2.c:392
    cci_read at /xxx/cci_helper.c:728
    ecdsa_signature_to_asn1 at /xxx/ecdsa.c:294
    cmd_wifi_fwlog at /xxx/mhd_api_test.c:449 # º¯Êýµ÷ÓÃ˳ÐòΪ´Óϵ½ÉÏ£¬¼´cmd_wifi_fwlog ?> ecdsa_signature_to_asn1 ?> cci_read ... ?> mhd_start_scan

×¢ÒâÊÂÏî

ÇëÈ·±£Ö´ÐнâÎöÃüÁîʱËùÖ¸¶¨µÄ rt_system.elf Ϊϵͳ¹Ì¼þËù¶ÔÓ¦µÄ rt_system.elf Îļþ£¬·ñÔò½âÎöºóµÄÕ»»ØËÝÐÅÏ¢ÎÞ·¨È·±£ÕýÈ·¡£

addr2line ·ÖÎö

·¢ÉúÒ쳣ʱ£¬Èç¹ûÕ»»ØËÝʧ°Ü£¬¿ÉÒÔͨ¹ý addr2line ¹¤¾ß£¬¶Ô´òÓ¡³öÀ´µÄÕ»ÉÏÊý¾Ý½øÐзÖÎö£¬´Ó¶øÈ·¶¨Õ»»ØËÝÐÅÏ¢¡£ÐèҪעÒâµÄÊÇ£¬Ê¹Óø÷½·¨µ÷ÊԵĿª·¢ÈËÔ±£¬ÐèÒªÌáǰÁ˽âһЩ ARM Ìåϵ¼Ü¹¹ºÍÈëÕ»³öÕ»µÈÏà¹ØÖªÊ¶¡£

ÓÃ;

ÔÚÕ»»ØËÝʧ°Üʱ£¬Ê¹Óà addr2line ´ÓÕ»ÉÏÊý¾ÝÖзÖÎöÕ»»ØËÝÐÅÏ¢¡£

Ó÷¨

·¢ÉúÒ쳣ʱµ±Ç°Õ»ÄÚÈÝ´òÓ¡ÈçÏ£º

dump stack memory:
0x40940f18: 0x40639028 0x4099ba68 0x00000000 0x00000000
0x40940f28: 0x00000000 0x00000000 0x00000000 0x00000000
0x40940f38: 0x00000000 0x00000000 0x00000000 0x00000000
0x40940f48: 0x00000000 0x00000000 0x00000000 0x00000000
0x40940f58: 0x00000000 0x00000000 0x00000000 0x00000000
0x40940f68: 0x00000000 0x00000000 0x00000000 0x00000000
0x40940f78: 0x00000000 0x00000000 0x00000000 0x00000000
0x40940f88: 0x00000000 0x00000000 0x00000000 0x00000000
0x40940f98: 0x00000000 0x404f3680 0x00000001 0x4099ba68
0x40940fa8: 0x4099ba68 0x00000001 0x4099b628 0x00000542
0x40940fb8: 0x4099bb68 0x40141388 0x4099ba68 0x404f3680
0x40940fc8: 0x4099a628 0x4099ba68 0x4099bb6a 0x40142214
0x40940fd8: 0x40141e2c 0x00000000 0x40141e2c 0xdeadbeef
0x40940fe8: 0xdeadbeef 0xdeadbeef 0xdeadbeef 0xdeadbeef
0x40940ff8: 0xdeadbeef 0x400d88b4 0x00000000 0x0001b63d

¶ÔËùÓеÄÄÚ´æÊý¾ÝʹÓÃÏÂÁÐÃüÁî½øÐзÖÎö¡£

$(SDK_ROOT)/lichee/rtos/tools/gcc?arm?melis?eabi?8?2019?q3?update/bin/arm?melis?eabi?addr2line ?a address ?e rt_system.elf ?f

# SDK_ROOT ±íʾSDK¸ùĿ¼
# ?f£ºÏÔʾº¯ÊýÃû
# ?a£ºaddressΪ´òÓ¡³öÀ´µÄµØÖ·
# ?e£º³ÌÐòÎļþ

·ÖÎö

¶ÔÓÚÎÞ·¨½âÎöµÄÄÚ´æÊý¾ÝÓèÒÔ¶ªÆúºó£¬¿ÉµÃµ½ÒÔÏÂÓÐЧµÄ·ÖÎöÐÅÏ¢¡£

0x40141388
msh_exec
/xxx/finsh_cli/msh.c:415

0x40142214
finsh_thread_entry
/xxx/finsh_cli/shell_entry.c:746
# º¯Êýµ÷ÓùØÏµfinsh_thread_entry ? > msh_exec

ÄÚ´æÐ¹Â¶·ÖÎö

FreeRTOS ϵͳÌṩÇáÁ¿¼¶µÄÄÚ´æÐ¹Â¶·ÖÎö¹¦ÄÜ£¬Æô¶¯ÄÚ´æÐ¹Â¶·ÖÎöºó£¬Ã¿µ±ÉêÇëÄÚ´æÊ±£¬½«¸ÃÄÚ´æ¿é¹ÒÈëÁ´±íÖУ¬ÊÍ·Åʱ½«Æä´ÓÁ´±íÖÐÕª³ý¡£×îÖÕ»¹´æÔÚÓÚÁ´±íÖ®Öе쬱ãÊÇ¿ÉÒɵÄÄÚ´æÐ¹Â¶µã¡£

ÓÃ;

¿ÉÓÃÓÚ·ÖÎö¡¢¶¨Î» FreeRTOS ϵͳµÄÄÚ´æÐ¹Â¶ÎÊÌâ¡£

ÅäÖÃ

System components ??? >
    aw components ??? >
        Memleak Components Support ??? >
            [*] Tina RTOS Memleak #ʹÄÜÄÚ´æÐ¹Â¶·ÖÎö¹¤¾ß
            (16) Tina RTOS Memleak Backtrace Level @ ÄÚ´æÐ¹Â¶·ÖÎöÕ»»ØËݲãÊý

ÖÕ¶ËÃüÁî

memleak

×÷ÓãºÄÚ´æÐ¹Â¶·ÖÎö
Ó÷¨£º
    memleak 1 ʹÄÜÄÚ´æÐ¹Â¶·ÖÎö£¬¼Ç¼ËùÓÐÄÚ´æ¿éÉêÇëÐÅÏ¢
    memleak 0 ¹Ø±ÕÄÚ´æÐ¹Â¶·ÖÎö£¬É¾³ýËùÓÐÄÚ´æ¿éµÄÉêÇëÐÅÏ¢
    memleak 1 thread_name1 thread_name2 ʹÄÜÄÚ´æÐ¹Â¶·ÖÎö£¬¼Ç¼ָ¶¨ÈÎÎñµÄÄÚ´æ¿éÉêÇëÐÅÏ¢
    memleak show ²»¹Ø±ÕÄÚ´æÐ¹Â¶·ÖÎö£¬´òÓ¡³öËùÓÐÄÚ´æ¿éÉêÇëÐÅÏ¢

memallocate

×÷Ó㺲鿴ָ¶¨ÈÎÎñµÄÄÚ´æÐ¹Â¶·ÖÎöÐÅÏ¢
Ó÷¨£ºmemallocate thread_name

ÄÚ´æÐ¹Â¶ log ·ÖÎö

¹Ø±ÕÄÚ´æÐ¹Â¶¼ì²âʱ£¬»á´òÓ¡¿ÉÒɵÄÄÚ´æÐ¹Â¶µã¼°Æä»ØËÝÐÅÏ¢£¬¿ª·¢Õ߿ɸù¾Ý»ØËÝÐÅÏ¢£¬²Î¿¼Õ»»ØËÝÕ½ڽøÐзÖÎö¡£

001: ptr = 0x404c7800, size = 0x00000400.
    backtrace : 0x401da778
    backtrace : 0x4013cd78
    backtrace : 0x4013b190
    backtrace : 0x401b7c44
    backtrace : 0x401e1854

# ptr : ´æÁôÔÚÁ´±íÖеÄÄÚ´æ¿éµØÖ·
# size : ´æÁôÔÚÁ´±íÖеÄÄÚ´æ¿é´óС
# backtrace : ÉêÇë¸ÃÄÚ´æ¿éʱµÄÕ»»ØËÝÐÅÏ¢

ÄÚ´æÖظ´Êͷżì²é

FreeRTOS ϵͳÌṩÇáÁ¿¼¶µÄÄÚ´æÖظ´ÊÍ·Å·ÖÎö¹¦ÄÜ£¬ÔÚÄÚ´æ¶Ñ¹ÜÀíÆ÷³õʼ»¯Íê³ÉÖ®ºó£¬Ê¹ÄÜÄÚ´æÖظ´Êͷżì²â¹¦ÄÜ£¬Ã¿µ±ÉêÇëÄÚ´æÊ±£¬½«¸ÃÄÚ´æ¿é¹ÒÈëÁ´±íÖУ¬ÊÍ·Åʱ½«Æä´ÓÁ´±íÖÐÕª³ý¡£Èç¹ûÊÍ·ÅÒ»¸ö²»´æÔÚÓÚ¸ÃÁ´±íÖеÄÄÚ´æ¿éʱ£¬ËµÃ÷֮ǰÒѾ­ÊͷŹý¸Ã¿éÄڴ棬Ôò±¾´ÎÊͷż´ÎªÄÚ´æÖظ´ÊÍ·Å¡£

ÓÃ;

·ÖÎöÊÇ·ñ´æÔÚÄÚ´æÖظ´ÊÍ·Å£¬ÒÔ¼°ÕÒµ½µÚ 2 ´ÎÊÍ·Åͬһ¸öÄÚ´æ¿éµÄµ÷ÓÃÁ´ÐÅÏ¢

ÅäÖÃ

System components ??? >
    aw components ??? >
        Memleak Components Support ??? >
            [*] Tina RTOS Memleak #ʹÄÜÄÚ´æÐ¹Â¶·ÖÎö¹¤¾ß
            [*] Tina RTOS Double Free Check #ʹÄÜÄÚ´æÖظ´Êͷżì²é

ÄÚ´æÖظ´ÊÍ·Å log ·ÖÎö

double free checked!!!
backtrace : 0x401da778
backtrace : 0x4013cd78
backtrace : 0x4013b190
backtrace : 0x401b7c44
backtrace : 0x401e1854

³öÏÖ double free checked!!! ¼´±íʾ´æÔÚÄÚ´æÖظ´ÊÍ·ÅÏÖÏ󣬴òÓ¡³öÀ´µÄÕ»»ØËÝÐÅÏ¢Êǵڶþ´ÎÊͷŸÃÄÚ´æ¿éʱµÄµ÷ÓÃÁ´ÐÅÏ¢¡£

ϵͳ±ÀÀ£Òì³£·ÖÎö

ϵͳ±ÀÀ£Òì³£Ö÷ÒªÊÇÖ¸ CPU Òò·Ç·¨µØÖ··ÃÎÊ¡¢Ö¸ÁîÒëÂë´íÎóµÈÔ­Òò£¬½øÈëÁËÒ쳣ģʽ£¬±íÏÖÐÎʽΪϵͳ´òÓ¡Òì³£Õ»ÐÅÏ¢ºÍ¼Ä´æÆ÷ÐÅÏ¢¡£

Arm M33 Star CPU Èí¼þÒì³£·ÖÎö

M33 CPU Òì³£ÀàÐÍ

M33 ÊDzÉÓà ARMv8m Ö¸Á¼Ü¹¹µÄ´¦ÀíÆ÷£¬ÆäÈí¼þÒì³£´¦ÀíÀàÐÍ·ûºÏ ARMv8m Èí¼þÒì³£ÀàÐÍ¡£ÆäÒì³£ÀàÐÍÈçÏ£º

  1. Bus Fault¡£´¥·¢¸ÃÒì³£µÄÔ­ÒòÓУºÈ¡Ö¸Ê§°Ü£¨prefetch abort)¡¢Êý¾Ý¶Á/дʧ°Ü£¨data abort)¡£BFSR ¼Ä´æÆ÷»á±£´æ²úÉú bus fault µÄÔ­Òò¡£
  2. MemManage Fault¡£´¥·¢¸ÃÒì³£µÄÔ­ÒòÓУº·ÃÎÊ MPU ÉèÖÃÇøÓò¸²¸Ç·¶Î§Ö®ÍâµÄµØÖ·¡¢ÍùÖ»¶Áregion дÊý¾Ý¡¢Óû§¼¶Ï·ÃÎÊÁËÖ»ÔÊÐíÔÚÌØÈ¨¼¶Ï·ÃÎʵĵØÖ·¡¢ÔÚ²»¿ÉÖ´ÐеĴ洢Æ÷ÇøÓòÊÔͼȡָ¡£MFSR ¼Ä´æÆ÷±£´æ²úÉú¸ÃÒì³£µÄÔ­Òò£¬MMSR ¼Ä´æÆ÷±£´æÁ˵¼ÖÂÒì³£µÄµØÖ·¡£
  3. User Fault¡£´¥·¢¸ÃÒì³£µÄÔ­ÒòÓУºÖ´ÐÐÁË䶨ÒåµÄÖ¸Áî¡¢³¢ÊÔ½øÈë ARM ״̬¡¢Ê¹Óà LDRM/STRM ¶àÖØ¼ÓÔØ/´æ´¢Ö¸Áîʱ£¬µØÖ·Ã»ÓÐ¶ÔÆë¡¢³ýÊýΪÁã¡¢ÈκÎδ¶ÔÆëµÄ·ÃÎÊ¡£UFSR ¼Ä´æÆ÷±£´æÁ˲úÉú¸ÃÒì³£µÄÔ­Òò¡£ÆäÖÐÐèҪעÒâÒ»µã£¬device memory ÔÚÈκÎÇé¿ö϶¼²»ÔÊÐí·Ç¶ÔÆë·ÃÎÊ¡£
  4. Hard Fault¡£´¥·¢¸ÃÒì³£µÄÔ­ÒòÓУºBus fault¡¢MemManage Fault ÒÔ¼°Ó÷¨ fault ÉϷõĽá¹û¡¢ÔÚÒì³£´¦ÀíÖжÁÈ¡Òì³£ÏòÁ¿±íʱ²úÉúµÄ×ÜÏß fault Ò²°´Ó² fault ´¦Àí¡£HFSR ¼Ä´æÆ÷±£´æÁ˲úÉú¸ÃÒì³£µÄÔ­Òò¡£

M33 CPU Èí¼þÒì³£·ÖÎö·½·¨

  1. È·ÈÏÒì³£ÀàÐÍ¡£
  2. Õ»»ØËÝ·ÖÎö¡£Õ»»ØËÝÊÇÖ¸ÔÚϵͳ±ÀÀ£Ö®ºó£¬»á´òÓ¡·¢ÉúÒ쳣ʱµÄÕ»»ØËÝÐÅÏ¢£¬¹©¿ª·¢Õß½øÐзÖÎö£¬¿É²Î¿¼Õ»»ØËÝÕ½ڽøÐзÖÎö

±ÀÀ£ log ·ÖÎö

# appos pstack:0x8146480 msp:0x81fffd0 psp:0x81464a0
# appos pstack ±íʾÒì³£·¢Éúºó¾­ CPU Ó²¼þÈëÕ»ºó SP ¼Ä´æÆ÷µÄÖµ£¬Ò²±íÃ÷ÁËÒì³£·¢ÉúʱÕýÔÚʹÓÃÄĸöÕ»
# msp ±íʾÒì³£·¢Éúºó msp ¼Ä´æÆ÷µÄÖµ
# psp ±íʾÒì³£·¢Éúºó psp ¼Ä´æÆ÷µÄÖµ£¬Òì³£·¢Éúʱ SP = psp/msp ? 0x40 (64¸ö×Ö½ÚÓÃÀ´±£´æÒì³£ºóµÄ¼Ä´æÆ÷ÏÖ³¡)
# msplim/psplim £º Òì³£ÏÖ³¡µÄ msplim ºÍ psplim ¼Ä´æÆ÷µÄÖµ
# usage fault happen : ±íʾ´Ëʱ´¥·¢ usage(user) fault
# cause:undefine instruction ±íʾÊÇ´¥·¢ÁË user fault ÖеķǷ¨Ö¸ÁîÒì³£
# CPU registers: ±íʾÒì³£ÏÖ³¡Í¨ÓüĴæÆ÷µÄÖµ
# backtrace information : ±íʾÒì³£ÏÖ³¡µÄÕ»»ØËÝÐÅÏ¢
# Ê£ÏÂÐÅÏ¢±íʾ¶ÔÓ¦µØÖ·µÄÖµ

exception:6 happen!!
appos pstack:0x8146480 msp:0x81fffd0 psp:0x81464a0
msplim:0x0 psplim:0x8142550
usage fault happen, UFSR:0x1, cause:undefine instruction
CPU registers:
R00:[081464A0]: 0x00000001
R01:[081464A4]: 0x083adf48
R02:[081464A8]: 0x00000001
R03:[081464AC]: 0x080cf115
R04:[08146480]: 0x083adec0
R05:[08146484]: 0x083ae000
R06:[08146488]: 0x0811b574
R07:[0814648C]: 0x00000000
R08:[08146490]: 0x08080808
R09:[08146494]: 0x09090909
R10:[08146498]: 0x10101010
R11:[0814649C]: 0x11111111
R12:[081464B0]: 0x00000000
R13(SP):[081464C0]: 0x081464c0
R14(LR):[081464B4]: 0x080c8d95
R15(PC):[081464B8]: 0x080cf114
xPSR:[081464BC]: 0x61000000
SHCSR:0x00070008 step:0
????backtrace information????
backtrace : 0X080CF115
backtrace fail!
backtrace : 0X080C8D92
backtrace : 0X080C6C66
backtrace : 0X080C7CE0
backtrace : 0X080DAD25
?????????????????????????????
stack info:
[081464C0]: 0x003adec0 0x0844ae00 0x08130eb0 0x080c6c69
[081464D0]: 0x0813e470 0x080d8bcf 0x10000000 0x00000000
[081464E0]: 0x00000000 0x00000006 0x0813e220 0x0813e470
[081464F0]: 0x05050505 0x0813e140 0x05050505 0x0813e180
[08146500]: 0x07070707 0x08080808 0x09090909 0x10101010
[08146510]: 0x11111111 0x080c7ce3 0x080c6afb 0x08130eb0
[08146520]: 0x10101010 0x11111111 0x0813e180 0x01010101
.......
[LR]:0x80c8d95
[080C8B90]: 0xf73bbaa5 0xf73bbaa1 0xf73bba9d 0xe92dba99
[080C8BA0]: 0x28024ff0 0x4605b085 0xdc06468a 0x30e0f64a
[080C8BB0]: 0x000ff6c0 0xf837f008 0x2810e008 0xf64add0c
.......

RISC?V CPU Èí¼þÒì³£·ÖÎö

image-20230523093417010

ÔÚ RISCV ¼Ü¹¹ÖУ¬¸ÃÀàÎÊÌâµÄ·ÖÎö·½·¨ÈçÏ£º

  1. È·ÈÏÒì³£ÀàÐÍ¡£
  2. Õ»»ØËÝ·ÖÎö¡£Õ»»ØËÝÊÇÖ¸ÔÚϵͳ±ÀÀ£Ö®ºó£¬»á´òÓ¡·¢ÉúÒ쳣ʱµÄÕ»»ØËÝÐÅÏ¢£¬¹©¿ª·¢Õß½øÐзÖÎö£¬¿É²Î¿¼Õ»»ØËÝÕ½ڽøÐзÖÎö
  3. ²é¿´ sepc ¼Ä´æÆ÷¡£µ±ÏµÍ³·¢ÉúÒ쳣ʱ£¬»á½«Òì³£Ö¸ÁîµÄµØÖ·±£´æµ½ sepc ¼Ä´æÆ÷ÖС£Èç¹û sepcÃ÷ÏÔÊÇÒ»¸ö·Ç·¨µÄÖ¸ÁîµØÖ·£¬¿É²é¿´ ra ¼Ä´æÆ÷À´È·¶¨Òì³£µØÖ·
  4. ·´±àÒë²é¿´Òì³£Ö¸Áȷ¶¨Òì³£µÄÖ±½ÓÔ­Òò²¢½øÐзÖÎö¡£³£Ó÷´±àÒë·½·¨ riscv64?unknown?elf?objdump ?d xxx.elf¡£xxx.elf ÐèÒª¸ù¾Ý sepc ¼Ä´æÆ÷µÄÖµ£¬È·ÈÏÆäËùÊôÄ£¿é£¬È»ºóÑ¡¶¨¶ÔÓ¦µÄelf Îļþ¡£

²¿·Ö²ÉÓà RISC?V Ö¸ÁµÄоƬ²»Ò»¶¨»áÔËÐÐ S ģʽ£¬Ö»»áÔËÐÐ M ģʽ£¬ËùÒÔ´Ë´¦ËùÖ¸µÄ sepc ºÍ mepc ¿É¸ù¾Ýʵ¼ÊÇé¿ö½øÐÐÌæ»»£¬ÆäËû RISC?V ¼Ä´æÆ÷ͬÀí

# EXC_STORE_PAGE_FAULT: »ØÐ´Êý¾Ý·ÃÎÊÒ³ÃæÒì³££¬¿É²Î¿¼[RISCVÒì³£·ÖÎö]À´·ÖÎö
# gprs : ͨÓüĴæÆ÷µÄÖµ
# sepc : Òì³£·¢Éúʱpc¼Ä´æÆ÷µÄÖµ
# sstatus : Òì³£·¢Éúʱsstaus¼Ä´æÆ÷µÄÖµ
# sscratch : Òì³£·¢Éúʱsscratch¼Ä´æÆ÷µÄÖµ
# backtrace : Òì³£·¢Éúʱջ»ØËÝÐÅÏ¢
# dump stack memory : Òì³£·¢ÉúʱջµÄÊý¾ÝÄÚÈÝ
# dump sepc memory : Òì³£·¢ÉúʱsepcµØÖ·Ö¸ÏòµÄÊý¾ÝÄÚÈÝ

=====================================================================================================
EXC_BREAKPOINT
=====================================================================================================
gprs:
x0:0x0000000000000000 ra:0x0000000008252828 sp:0x000000000844aef0 gp:0x00000000083695b0
tp:0x0000000000000000 t0:0x0000000000000009 t1:0x0000000000000002 t2:0x0000000000000000
s0:0x000000000844af00 s1:0x0000000000000000 a0:0x0000000000000001 a1:0x000000000844af00
a2:0x0000000000000000 a3:0x0000000000000000 a4:0x0000000000000000 a5:0x0000000008252162
a6:0x0000000000000000 a7:0x0000000000000008 s2:0x0000000000000001 s3:0x000000000844b180
s5:0x0000000000000800 s5:0x0000000008329c88 s6:0x00000000082fca88 s7:0xa5a5a5a5a5a5a5a5
s8:0xa5a5a5a5a5a5a5a5 s9:0xa5a5a5a5a5a5a5a5 s10:0xa5a5a5a5a5a5a5a5 s11:0xa5a5a5a5a5a5a5a5
t3:0x0000000000000022 t4:0x000000000844af08 t5:0x000000000000003b t6:0x0000000000000020
other:
mepc :0x0000000008252162
mcause :0x0000000000000003
mtval :0x0000000000000000
mstatus :0x0000000a00003980
mscratch:0x0000000000000000
???????backtrace???????????
backtrace : 0X08252162
backtrace : invalid lr(0000000000000000)
backtrace : 0X08252826
backtrace : 0X08251D52
backtrace : 0X082520B4
backtrace : 0X082F6694
???????????????????????????
== > Round [1] <==
Total Heap Size : 4587992 Bytes ( 4480 KB)
Free : 3893696 Bytes ( 3802 KB)
Min Free : 3851104 Bytes ( 3760 KB)
dump_memory:stack
0x000000000844AE70: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
0x000000000844AE80: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
0x000000000844AE90: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
0x000000000844AEA0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
0x000000000844AEB0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
0x000000000844AEC0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
0x000000000844AED0: 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5 0xa5a5a5a5
0x000000000844AEE0: 0x00000800 0x00000000 0x0825281c 0x00000000
0x000000000844AEF0: 0x00000000 0x00000001 0x0844b005 0x00000000
0x000000000844AF00: 0x0844b000 0x00000000 0x00000000 0x00000000
.......
dump_memory:mepc
0x00000000082520E6: 0xbfb90084 0xfe07871b 0x0ff77713 0x05e00693
0x00000000082520F6: 0xf4e6e8e3 0x0ff00713 0xf4e404e3 0x0084d78b
0x0000000008252106: 0x74132405 0xbf2d0ff4 0xf4067179 0xe42af022
.......
dump_memory:x1
0x0000000008252818: 0xe61ff0ef 0x691cc519 0x85a2c789 0x9782854a
0x0000000008252828: 0x30834485 0x34032281 0x85262201 0x21013903
0x0000000008252838: 0x21813483 0x23010113 0x71198082 0xeccef4a6
0x0000000008252848: 0x0010c497 0x45448493 0x0010c997 0x44898993
0x0000000008252858: 0xf0caf8a2 0x0009a403 0x0004a903 0xe0dae8d2
0x0000000008252868: 0xf862fc5e 0xf06af466 0xe4d6fc86 0x8b2aec6e
0x0000000008252878: 0xe4028bae 0x0014d797 0x4607a223 0x000d8c17
0x0000000008252888: 0x124c0c13 0x06800a13 0x03a00c93 0x03f00d13
.......
dump_memory:x3
0x00000000083695A0: 0x082c9752 0x00000000 0x00000000 0x00000000
0x00000000083695B0: 0x00000000 0x00000000 0x08348148 0x00000000
0x00000000083695C0: 0x00000000 0x00000000 0x082c8b80 0x00000000
0x00000000083695D0: 0x082cab12 0x00000000 0x00000000 0x00000000
0x00000000083695E0: 0x08349070 0x00000000 0x00000000 0x00000000
0x00000000083695F0: 0x082d19ce 0x00000000 0x082d174c 0x00000000
0x0000000008369600: 0x00000000 0x00000000 0x0834caa8 0x00000000
0x0000000008369610: 0x00000000 0x00000000 0x00000000 0x00000000
.......

¶Ïµãµ÷ÊÔ

¶Ïµãµ÷ÊÔÊÇÖ¸ÀûÓà CPU µÄÓ²¼þ¶Ïµã»òÕßÈí¼þ¶ÏµãÀ´½øÐе÷ÊÔ£¬Í¨¹ý¶ÔÖ¸¶¨µÄµØÖ·ÉèÖöϵ㣬µ±³ÌÐòÖ´Ðе½¸ÃµØÖ·Ê±£¬´¥·¢Èí¼þȡָÒì³££¬ÔÙ¸ù¾ÝÒì³£ÐÅÏ¢½øÐзÖÎö¡£Í¨¹ýʹÓø÷½·¨£¬¿ÉÒÔѸËÙÅжϳÌÐòÊÇ·ñÖ´Ðе½Ö¸¶¨µÄµØÖ·¡£Ä¿Ç°¸Ã¹¦ÄܽöÔÚʹÓà M33 Star CPU µÄоƬÉÏÖ§³Ö¡£

ÓÃ;

¿ÉÓÃÓÚ·ÖÎöÈí¼þÖ´ÐÐÁ÷³Ì£¬ÒÔ¼°¿ìËÙ·ÖÎöº¯Êýµ÷ÓòÎÊý¡¢·µ»ØÖµµÈ¡£

ÅäÖÃ

System components ??? >
    aw components ??? >
        Watchpoint Components Support ??? >
            [*] Tina RTOS Watchpoint # ʹÓöϵãÓë¹Û²ìµã

ÖÕ¶ËÃüÁî

×÷Óà : ÉèÖóÌÐò¶Ïµã£¬µ±Ç°½öʹÓÃÓ²¼þ¶Ïµã
Ó÷¨ : breakpoint [set | remove] addr
    set : ÉèÖöϵã
    remove : È¡Ïû¶Ïµã
    addr : ÔڸõØÖ·ÉèÖöϵã

½Ó¿Ú½éÉÜ

ÉèÖöϵã

int gdb_set_hw_break(unsigned long addr);

²ÎÊý

  • addr : ´ýÉèÖöϵãµÄµØÖ·

·µ»ØÖµ - 0 : ÉèÖöϵã³É¹¦ - ?1 : ÉèÖöϵãʧ°Ü

ÒÆ³ý¶Ïµã

int gdb_remove_hw_break(unsigned long addr);

²ÎÊý

  • addr : ´ýÒÆ³ý¶ÏµãµÄµØÖ·

·µ»ØÖµ

  • 0 : ÒÆ³ý¶Ïµã³É¹¦
  • -1 : ÒÆ³ý¶Ïµãʧ°Ü

¶ÏµãÒì³£·ÖÎö

¶ÏµãÒì³£·ÖÎö£¬¿É²Î¿¼ÏµÍ³±ÀÀ£Òì³£·ÖÎöÕ½ڽøÐзÖÎö¡£

¹Û²ìµãµ÷ÊÔ

¹Û²ìµãµ÷ÊÔÊÇÖ¸ÀûÓà CPU µÄÓ²¼þ¹Û²ìµãÀ´½øÐе÷ÊÔ£¬Í¨¹ý¶ÔÖ¸¶¨µÄµØÖ·ÉèÖÃÖ¸¶¨ÊôÐԵĹ۲ìµã£¬µ± CPU ¶Ô¸ÃµØÖ·½øÐÐÖ¸¶¨ÊôÐԵIJÙ×÷ʱ£¬»á´¥·¢Êý¾Ý·ÃÎÊÒì³££¬È»ºóÔÙ¸ù¾ÝÒì³£ÐÅÏ¢½øÐзÖÎö¡£Í¨¹ýʹÓø÷½·¨£¬¿ÉÒÔѸËÙÅжÏij¿éÄÚ´æÊÇ·ñ±»Ð޸ġ¢¶ÁÈ¡»òÕß·ÃÎÊ¡£Ä¿Ç°¸Ã¹¦ÄܽöÔÚʹÓà M33 Star CPU µÄоƬÉÏÖ§³Ö¡£

¹Û²ìµãÊôÐÔ±í

ÊôÐÔ

×÷ÓÃ

write

¼àÊÓд²Ù×÷

read

¼àÊÓ¶Á²Ù×÷

access

¼àÊÓ·ÃÎʲÙ×÷£¬°üÀ¨¶ÁºÍд

ÓÃ;

¿ÉÓÃÓÚ·ÖÎöij¿éÄÚ´æ´¦ÊÇ·ñ±»´Û¸ÄµÈÎÊÌâ¡£

ÅäÖÃ

System components ??? >
    aw components ??? >
        Watchpoint Components Support ??? >
            [*] Tina RTOS Watchpoint # ʹÓöϵãÓë¹Û²ìµã

ÖÕ¶ËÃüÁî

×÷Óà : ÉèÖÃÓ²¼þ¹Û²ìµã£¬µ±Ç°½öʹÓÃÓ²¼þ¶Ïµã
Ó÷¨ : watchpoint [write | read | access | remove] addr
    write : ¼àÊÓд²Ù×÷
    read : ¼àÊÓ¶Á²Ù×÷
    access : ¼àÊÓ·ÃÎʲÙ×÷
    remove : È¡Ïû¹Û²ìµã
    addr : ÔڸõØÖ·ÉèÖÃ/È¡Ïû¹Û²ìµã

½Ó¿Ú½éÉÜ

ÉèÖù۲ìµã

int gdb_set_hw_watch(unsigned long addr, enum gdb_bptype type);

²ÎÊý

  • addr : ´ýÉèÖöϵãµÄµØÖ·
  • type : ¹Û²ìµãÀàÐÍ

·µ»ØÖµ

  • 0 : ÉèÖù۲ìµã³É¹¦
  • ?1 : ÉèÖù۲ìµãʧ°Ü

ÒÆ³ý¹Û²ìµã

int gdb_remove_hw_watch(unsigned long addr);

²ÎÊý

  • addr : ´ýÒÆ³ý¹Û²ìµãµÄµØÖ·

·µ»ØÖµ

  • 0 : ÒÆ³ý¹Û²ìµã³É¹¦
  • ?1 : ÒÆ³ý¹Û²ìµãʧ°Ü

¹Û²ìµãÒì³£·ÖÎö

¹Û²ìµãÒì³£·ÖÎö£¬¿É²Î¿¼ÏµÍ³±ÀÀ£Òì³£·ÖÎöÕ½ڽøÐзÖÎö¡£

ÉùÃ÷£º±¾ÎÄÄÚÈݼ°ÅäͼÓÉÈëפ×÷Õß׫д»òÕßÈëפºÏ×÷ÍøÕ¾ÊÚÈ¨×ªÔØ¡£ÎÄÕ¹۵ã½ö´ú±í×÷Õß±¾ÈË£¬²»´ú±íµç×Ó·¢ÉÕÓÑÍøÁ¢³¡¡£ÎÄÕ¼°ÆäÅäͼ½ö¹©¹¤³Ìʦѧϰ֮Óã¬ÈçÓÐÄÚÈÝÇÖȨ»òÕ߯äËûÎ¥¹æÎÊÌ⣬ÇëÁªÏµ±¾Õ¾´¦Àí¡£ ¾Ù±¨Í¶Ëß
  • ´¦ÀíÆ÷
    +¹Ø×¢

    ¹Ø×¢

    68

    ÎÄÕÂ

    19969

    ä¯ÀÀÁ¿

    237734
  • ARM
    ARM
    +¹Ø×¢

    ¹Ø×¢

    134

    ÎÄÕÂ

    9396

    ä¯ÀÀÁ¿

    380079
  • ¼Ä´æÆ÷
    +¹Ø×¢

    ¹Ø×¢

    31

    ÎÄÕÂ

    5448

    ä¯ÀÀÁ¿

    125507
  • FreeRTOS
    +¹Ø×¢

    ¹Ø×¢

    13

    ÎÄÕÂ

    495

    ä¯ÀÀÁ¿

    64769
  • RISC-V
    +¹Ø×¢

    ¹Ø×¢

    46

    ÎÄÕÂ

    2635

    ä¯ÀÀÁ¿

    49277
ÊÕ²Ø ÈËÊÕ²Ø
¼ÓÈë½»Á÷Ⱥ
΢ÐÅСÖúÊÖ¶þάÂë

ɨÂëÌí¼ÓСÖúÊÖ

¼ÓÈ빤³Ìʦ½»Á÷Ⱥ

    ÆÀÂÛ

    Ïà¹ØÍÆ¼ö
    ÈȵãÍÆ¼ö

    ȫ־R128 BLE×î¸ßÍÌÍÂÁ¿²âÊÔÕýÈ·ÅäÖòâÊÔ·½·¨

    ÔÚR128ʹÓÃǰÎÒÃÇÐèÒªÁ˽âBLEµÄ×î¸ßÍÌÍÂÁ¿£¬ÒÔ·½±ãÆÀ¹ÀÏà¹Ø¹¦ÄܵĿª·¢¡£
    µÄÍ·Ïñ ·¢±íÓÚ 10-27 17:17 ?1958´ÎÔĶÁ
    <b class='flag-5'>È«</b><b class='flag-5'>Ö¾</b><b class='flag-5'>R128</b> BLE×î¸ßÍÌÍÂÁ¿²âÊÔÕýÈ·ÅäÖòâÊÔ<b class='flag-5'>·½·¨</b>

    ȫ־R128ÄÚ´æÐ¹Â©µ÷ÊÔ°¸Àý·ÖÏí

    Ó²¼þ£ºR128 Èí¼þ£ºFreeRTOS + rtplayer\_test(Cedarx)+ AudioSystem
    µÄÍ·Ïñ ·¢±íÓÚ 11-20 17:27 ?1482´ÎÔĶÁ
    <b class='flag-5'>È«</b><b class='flag-5'>Ö¾</b><b class='flag-5'>R128</b>ÄÚ´æÐ¹Â©<b class='flag-5'>µ÷ÊÔ</b>°¸Àý·ÖÏí

    Ïê½âȫ־R128 RTOS°²È«·½°¸¹¦ÄÜ

    /sys_partition.fex¹¦ÄܽéÉÜR128 FreeRTOS ϵͳÉÏÖ§³ÖÈçϰ²È«¹¦ÄÜ °²È«Ó²¼þÏÂͼÊÇ ARM Ϊ M33 Sta
    ·¢±íÓÚ 12-28 15:59

    ȫ־R128ÈëÃűàдHelloWorld

    ±¾ÎĽ«½éÉÜʹÓà R128 ¿ª·¢°å´Ó´®¿ÚÊä³ö HelloWorld µÄ·½Ê½½éÉÜ SDK Èí¼þ¿ª·¢Á÷³Ì¡£ ÔØÈë·½°¸ÎÒÃÇʹÓõĿª·¢°åÊÇ R128-
    ·¢±íÓÚ 12-29 09:39

    ȫ־R128Ó²¼þÉè¼ÆÖ¸ÄÏ¢Ù

    Ðźţ¬Ê¹ SOC¸´Î»£¬Èí¼þÏµÍ³ÖØÐÂÆô¶¯¡£ R128Ó²¼þϵͳ×é³ÉÈçÏÂ±í£º [td]ϵͳ˵Ã÷ CPUСϵͳ
    ·¢±íÓÚ 01-04 09:23

    ȫ־R128 SDK¼Ü¹¹ÓëĿ¼½á¹¹

    R128 S2 ÊÇȫ־ÌṩµÄÒ»¿î M33(ARM)+C906(RISCV-64)+HIFI5(Xtensa) ÈýºËÒì¹¹ SoC£¬Í¬Ê±Ð¾Æ¬ÄÚ²¿ SIP ÓÐ 1M SRAM¡¢8M LSPS
    ·¢±íÓÚ 01-05 10:05

    ȫ־R128ϵͳRTOSʹÓÃ˵Ã÷

    ;&gt;help»ñȡϵͳ֧³ÖµÄÖÕ¶ËÃüÁî backtrace²é¿´Ö¸¶¨ÈÎÎñ¶ÑÕ»»ØËÝÐÅÏ¢ code"&gt;backtrace [taskname
    ·¢±íÓÚ 01-05 10:22

    ȫ־R128 Devkit¿ª·¢°åÔ­Àíͼģ¿é½éÉܼ°Ê¹ÓÃ˵Ã÷

    £ºCH341SER.EXE ¹ºÂòÁ´½Ó °ÙÎʿƼ¼ÌÔ±¦µê - ȫ־R128 DevKit Ô­Àíͼģ¿é½éÉÜR128 Ä£×é
    ·¢±íÓÚ 01-17 09:45

    ȫ־R128оƬ ÈçºÎÔÚFreeRTOS϶ԴúÂëÔ´Îļþ½øÐпìËÙÔ¤´¦Àí£¿

    1.Ö÷ÌâFreeRTOS_R128_ÈçºÎ¶Ô´úÂëÔ´Îļþ½øÐпìËÙÔ¤´¦Àí2.ÎÊÌâ±³¾°Ó²¼þ£ºR128Èí¼þ£ºFreeRTOS¿Í»§ÔÚÈÕ³£µÄ¿ª·¢¹ý³ÌÖУ¬»áÅöµ½Ô´ÎļþÖÐÓÐÐí¶àµÄºê»òÐí¶àÌõ¼þ±àÒëµÄ´úÂ룬
    ·¢±íÓÚ 03-17 10:23

    ¡¾È«Ö¾R128¿ª·¢¾­Ñé·ÖÏí¡¿ÆôÓÃUSB ADBÒÔ¼°ÎÞÏßADBÅäÖ÷½·¨

    Ê×ÏÈÔÚFreeRTOSµÄ»·¾³Ï£¬Ñ¡Ôñr128_c906_pro£º source envsetup.sh lunch_rtos r128s2_pro_c906 USB ADBµÄÅäÖñȽϳ£¹æ£¬×¢ÒâÒÔÏÂ
    ·¢±íÓÚ 10-24 17:29

    ȫ־R128ÄÚ´æÐ¹Â©µ÷ÊÔ°¸Àý

    ÄÚ´æÐ¹Â¶µ÷ÊÔ°¸Àý ÎÊÌâ±³¾° Ó²¼þ£ºR128 Èí¼þ£ºFreeRTOS + rtplayer_test(Cedarx)+ AudioSystem ÎÊÌ⸴ÏÖ ¸´ÏÖ²½Ö裺 rtplayer_t
    ·¢±íÓÚ 11-20 16:54

    ȫ־R128ÄÚ´æÐ¹Â¶µ÷ÊÔ°¸Àý

    ÄÚ´æÐ¹Â¶µ÷ÊÔ°¸Àý ÎÊÌâ±³¾° Ó²¼þ£ºR128 Èí¼þ£ºFreeRTOS + rtplayer_test(Cedarx)+ AudioSystem ÎÊÌ⸴ÏÖ ¸´ÏÖ²½Ö裺 rtplayer_t
    ·¢±íÓÚ 12-11 10:57

    ȫ־R128ÊÊÅäST7789v LCD

    R128 ƽ̨ÌṩÁË SPI DBI µÄ SPI TFT ½Ó¿Ú£¬¾ßÓÐÈçÏÂÌØµã
    µÄÍ·Ïñ ·¢±íÓÚ 10-23 11:26 ?1638´ÎÔĶÁ
    <b class='flag-5'>È«</b><b class='flag-5'>Ö¾</b><b class='flag-5'>R128</b>ÊÊÅäST7789v LCD

    ȫ־R128ÆôÓÃUSB ADBÒÔ¼°ÎÞÏßADBÅäÖ÷½·¨

    Ê×ÏÈÔÚFreeRTOSµÄ»·¾³Ï£¬Ñ¡Ôñr128\_c906\_pro
    µÄÍ·Ïñ ·¢±íÓÚ 11-01 11:43 ?1776´ÎÔĶÁ
    <b class='flag-5'>È«</b><b class='flag-5'>Ö¾</b><b class='flag-5'>R128</b>ÆôÓÃUSB ADBÒÔ¼°ÎÞÏßADBÅäÖÃ<b class='flag-5'>·½·¨</b>

    DshanMCU-R128s2 SDK ¼Ü¹¹ÓëĿ¼½á¹¹

    R128 S2 ÊÇȫ־ÌṩµÄÒ»¿î M33(ARM)+C906(RISCV-64)+HIFI5(Xtensa) ÈýºËÒì¹¹ SoC£¬Í¬Ê±Ð¾Æ¬ÄÚ²¿ SIP ÓÐ 1M SRAM¡¢8M LSPS
    µÄÍ·Ïñ ·¢±íÓÚ 12-22 15:57 ?1332´ÎÔĶÁ
    DshanMCU-<b class='flag-5'>R128</b>s2 SDK ¼Ü¹¹ÓëĿ¼½á¹¹