Õ»»ØËÝ
Õ»»ØËÝÊÇÖ¸»ñÈ¡³ÌÐòµÄµ÷ÓÃÁ´ÐÅÏ¢£¬Í¨¹ýÕ»»ØËÝÐÅÏ¢£¬ÄܰïÖú¿ª·¢Õß¿ìËÙÀíÇå³ÌÐòÖ´ÐÐÁ÷³Ì£¬Ìá¸ß·ÖÎöÎÊÌâµÄЧÂÊ¡£
ÓÃ;
- »ñÈ¡³ÌÐòµ÷ÓùØÏµ£¬ÀíÇå³ÌÐòÖ´ÐÐÁ÷³Ì¡£
- ÔÚϵͳ´¥·¢Ò쳣ʱ£¬¿ìËÙ·ÖÎöÒì³£ËùÔÚλÖü°Æäµ÷ÓÃÁ´¡£
- ÔÚ·ÖÎöijÈÎÎñ¿¨ËÀÔÒòʱ£¬¿ÉÒÔͨ¹ý¶Ô¸ÃÈÎÎñ½øÐÐÕ»»ØËÝ£¬¿ìËÙ·ÖÎö¿¨ËÀµã¡£
- ·ÖÎö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]
»ØËÝÐÅÏ¢½âÎö
- ÔÚ PC ¶Ë¿ª·¢»·¾³ÖУ¬ÔÚ FreeRTOS SDK ¸ùĿ¼Ï£¬Ö´ÐÐ source envsetup.sh
- ÔÚ PC ¶Ë¿ª·¢»·¾³ÖУ¬ÔÚ FreeRTOS SDK µÄ lichee/rtos Ŀ¼Ï´´½¨ backtrace.txt Îļþ£¬È»ºó½«»ØËÝÐÅÏ¢´ÓÖÕ¶ËÖп½±´³öÀ´£¬²¢±£´æµ½ backtrace.txt ÎļþÖС£
- ÔÚ 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 Èí¼þÒì³£ÀàÐÍ¡£ÆäÒì³£ÀàÐÍÈçÏ£º
- Bus Fault¡£´¥·¢¸ÃÒì³£µÄÔÒòÓУºÈ¡Ö¸Ê§°Ü£¨prefetch abort)¡¢Êý¾Ý¶Á/дʧ°Ü£¨data abort)¡£BFSR ¼Ä´æÆ÷»á±£´æ²úÉú bus fault µÄÔÒò¡£
- MemManage Fault¡£´¥·¢¸ÃÒì³£µÄÔÒòÓУº·ÃÎÊ MPU ÉèÖÃÇøÓò¸²¸Ç·¶Î§Ö®ÍâµÄµØÖ·¡¢ÍùÖ»¶Áregion дÊý¾Ý¡¢Óû§¼¶Ï·ÃÎÊÁËÖ»ÔÊÐíÔÚÌØÈ¨¼¶Ï·ÃÎʵĵØÖ·¡¢ÔÚ²»¿ÉÖ´ÐеĴ洢Æ÷ÇøÓòÊÔͼȡָ¡£MFSR ¼Ä´æÆ÷±£´æ²úÉú¸ÃÒì³£µÄÔÒò£¬MMSR ¼Ä´æÆ÷±£´æÁ˵¼ÖÂÒì³£µÄµØÖ·¡£
- User Fault¡£´¥·¢¸ÃÒì³£µÄÔÒòÓУºÖ´ÐÐÁË䶨ÒåµÄÖ¸Áî¡¢³¢ÊÔ½øÈë ARM ״̬¡¢Ê¹Óà LDRM/STRM ¶àÖØ¼ÓÔØ/´æ´¢Ö¸Áîʱ£¬µØÖ·Ã»ÓÐ¶ÔÆë¡¢³ýÊýΪÁã¡¢ÈκÎδ¶ÔÆëµÄ·ÃÎÊ¡£UFSR ¼Ä´æÆ÷±£´æÁ˲úÉú¸ÃÒì³£µÄÔÒò¡£ÆäÖÐÐèҪעÒâÒ»µã£¬device memory ÔÚÈκÎÇé¿ö϶¼²»ÔÊÐí·Ç¶ÔÆë·ÃÎÊ¡£
- Hard Fault¡£´¥·¢¸ÃÒì³£µÄÔÒòÓУºBus fault¡¢MemManage Fault ÒÔ¼°Ó÷¨ fault ÉϷõĽá¹û¡¢ÔÚÒì³£´¦ÀíÖжÁÈ¡Òì³£ÏòÁ¿±íʱ²úÉúµÄ×ÜÏß fault Ò²°´Ó² fault ´¦Àí¡£HFSR ¼Ä´æÆ÷±£´æÁ˲úÉú¸ÃÒì³£µÄÔÒò¡£
M33 CPU Èí¼þÒì³£·ÖÎö·½·¨
- È·ÈÏÒì³£ÀàÐÍ¡£
- Õ»»ØËÝ·ÖÎö¡£Õ»»ØËÝÊÇÖ¸ÔÚϵͳ±ÀÀ£Ö®ºó£¬»á´òÓ¡·¢ÉúÒ쳣ʱµÄÕ»»ØËÝÐÅÏ¢£¬¹©¿ª·¢Õß½øÐзÖÎö£¬¿É²Î¿¼Õ»»ØËÝÕ½ڽøÐзÖÎö
±ÀÀ£ 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 Èí¼þÒì³£·ÖÎö
ÔÚ RISCV ¼Ü¹¹ÖУ¬¸ÃÀàÎÊÌâµÄ·ÖÎö·½·¨ÈçÏ£º
- È·ÈÏÒì³£ÀàÐÍ¡£
- Õ»»ØËÝ·ÖÎö¡£Õ»»ØËÝÊÇÖ¸ÔÚϵͳ±ÀÀ£Ö®ºó£¬»á´òÓ¡·¢ÉúÒ쳣ʱµÄÕ»»ØËÝÐÅÏ¢£¬¹©¿ª·¢Õß½øÐзÖÎö£¬¿É²Î¿¼Õ»»ØËÝÕ½ڽøÐзÖÎö
- ²é¿´ sepc ¼Ä´æÆ÷¡£µ±ÏµÍ³·¢ÉúÒ쳣ʱ£¬»á½«Òì³£Ö¸ÁîµÄµØÖ·±£´æµ½ sepc ¼Ä´æÆ÷ÖС£Èç¹û sepcÃ÷ÏÔÊÇÒ»¸ö·Ç·¨µÄÖ¸ÁîµØÖ·£¬¿É²é¿´ ra ¼Ä´æÆ÷À´È·¶¨Òì³£µØÖ·
- ·´±àÒë²é¿´Òì³£Ö¸Áȷ¶¨Òì³£µÄÖ±½ÓÔÒò²¢½øÐзÖÎö¡£³£Ó÷´±àÒë·½·¨ 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
+¹Ø×¢
¹Ø×¢
134ÎÄÕÂ
9396ä¯ÀÀÁ¿
380079 -
¼Ä´æÆ÷
+¹Ø×¢
¹Ø×¢
31ÎÄÕÂ
5448ä¯ÀÀÁ¿
125507 -
FreeRTOS
+¹Ø×¢
¹Ø×¢
13ÎÄÕÂ
495ä¯ÀÀÁ¿
64769 -
RISC-V
+¹Ø×¢
¹Ø×¢
46ÎÄÕÂ
2635ä¯ÀÀÁ¿
49277
·¢²¼ÆÀÂÛÇëÏÈ µÇ¼
ȫ־R128 BLE×î¸ßÍÌÍÂÁ¿²âÊÔÕýÈ·ÅäÖòâÊÔ·½·¨

Ïê½âȫ־R128 RTOS°²È«·½°¸¹¦ÄÜ
ȫ־R128ÈëÃűàдHelloWorld
ȫ־R128Ó²¼þÉè¼ÆÖ¸ÄÏ¢Ù
ȫ־R128 SDK¼Ü¹¹ÓëĿ¼½á¹¹
ȫ־R128ϵͳRTOSʹÓÃ˵Ã÷
ȫ־R128 Devkit¿ª·¢°åÔÀíͼģ¿é½éÉܼ°Ê¹ÓÃ˵Ã÷
ȫ־R128оƬ ÈçºÎÔÚFreeRTOS϶ԴúÂëÔ´Îļþ½øÐпìËÙÔ¤´¦Àí£¿
¡¾È«Ö¾R128¿ª·¢¾Ñé·ÖÏí¡¿ÆôÓÃUSB ADBÒÔ¼°ÎÞÏßADBÅäÖ÷½·¨
ȫ־R128ÄÚ´æÐ¹Â©µ÷ÊÔ°¸Àý
ȫ־R128ÄÚ´æÐ¹Â¶µ÷ÊÔ°¸Àý
DshanMCU-R128s2 SDK ¼Ü¹¹ÓëĿ¼½á¹¹

ÆÀÂÛ