|
Обязательный префикс функции. |
|
|
|
 |
Ответов
|
Aug 3 2016, 10:47
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(jcxz @ Aug 3 2016, 13:23)  Забитие шаблоном - не лучший метод. Так как стек успеет переполниться, ПО повиснет, а я об этом так и не узнаю. Не говоря уже о ненулевой вероятности совпадения записываемых данных с шаблоном. Был бы в Cortex-M более функциональный MPU, сделал бы на нём. А так: или префикс в начало каждой функции или периодическая проверка в ISR высокочастотного таймера. Других способов не вижу пока. J-Link Pro в IAR показывает полную пирамиду вызовы в реальном времени в окне timeline. И весь перечень вызовов в любой точке останова в окне Call Stack. Если применить MQX то будет отображаться стек вызовов для каждой задачи отдельно. Также будет виден максимальный расход стека для каждой задачи. Также покажет автоматически все повреждения служебных структур RTOS. Покажет и переполнение менеджера памяти и фрагментацию памяти.
|
|
|
|
|
Aug 3 2016, 11:11
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(AlexandrY @ Aug 3 2016, 16:47)  J-Link Pro в IAR показывает полную пирамиду вызовы в реальном времени в окне timeline. И весь перечень вызовов в любой точке останова в окне Call Stack. И что это даст? Мне нужно максимальное использование стека. По всем задачам. Цитата(AlexandrY @ Aug 3 2016, 16:47)  Если применить MQX то будет отображаться стек вызовов для каждой задачи отдельно. Также будет виден максимальный расход стека для каждой задачи. У меня не MQX. И как интересно MQX это вычисляет? Периодически анализируя затёртость шаблона в отдельной сервисной задаче? Плохо, так как это никак не спасает при переполнении стека. Я прекрасно понимаю, что заполняя стек шаблоном, можно с большой долей вероятности оценить глубину использования стека. И собственно так сейчас и делаю. Но это работает, только если нет случаев переполнения стека! Цитата(scifi @ Aug 3 2016, 16:44)  В ассемблерном листинге заменить все BL на запрещённый опкод (уж это, наверное, можно автоматизировать). Далее обрабатывать исключение на invalid opcode. Ну да. А ещё BLX. А ещё и все B проанализировать, так как они тоже могут являться вызовами функций (если такой вызов находится в конце другой функции). Да и что потом с этим листингом делать? Как из него прошивку получить? Заменять тогда уж надо не BL, а все PUSH и SUB SP,#...
|
|
|
|
Сообщений в этой теме
jcxz Обязательный префикс функции. Aug 3 2016, 08:47 ig_z QUOTE (jcxz @ Aug 3 2016, 11:47) Т.е. - ч... Aug 3 2016, 08:58 demiurg_spb Цитата(ig_z @ Aug 3 2016, 11:58) Такое то... Aug 3 2016, 13:36 ViKo Цитата(jcxz @ Aug 3 2016, 11:47) Думаю до... Aug 3 2016, 09:08 jcxz Цитата(ViKo @ Aug 3 2016, 15:08) А в idle... Aug 3 2016, 10:05  scifi Цитата(jcxz @ Aug 3 2016, 13:23) Других с... Aug 3 2016, 10:44 k155la3 да простят меня ....
переобразовать return в Retu... Aug 3 2016, 13:16 jcxz Цитата(k155la3 @ Aug 3 2016, 19:16) да пр... Aug 3 2016, 15:20  demiurg_spb Цитата(jcxz @ Aug 3 2016, 18:20) Прошерст... Aug 3 2016, 16:00   AlexandrY Цитата(demiurg_spb @ Aug 3 2016, 19:00) В... Aug 3 2016, 16:11    demiurg_spb Цитата(AlexandrY @ Aug 3 2016, 19:11) Сде... Aug 3 2016, 17:01    jcxz Цитата(AlexandrY @ Aug 3 2016, 22:11) А и... Aug 3 2016, 18:14     AlexandrY Цитата(jcxz @ Aug 3 2016, 21:14) Терпимо:... Aug 3 2016, 19:46      jcxz Цитата(AlexandrY @ Aug 4 2016, 01:46) Т.е... Aug 4 2016, 02:58 scifi Вроде бы всю жизнь это называлось "пролог... Aug 4 2016, 05:37 jcxz Цитата(scifi @ Aug 4 2016, 11:37) Вроде б... Aug 4 2016, 06:29  AlexandrY Цитата(jcxz @ Aug 4 2016, 09:29) По этому... Aug 4 2016, 06:59   jcxz Цитата(AlexandrY @ Aug 4 2016, 12:59) Спе... Aug 4 2016, 08:23    AlexandrY Цитата(jcxz @ Aug 4 2016, 11:23) Не сочти... Aug 4 2016, 08:40     jcxz Цитата(AlexandrY @ Aug 4 2016, 14:40) ... Aug 4 2016, 10:11      AlexandrY Цитата(jcxz @ Aug 4 2016, 13:11) Не подхо... Aug 4 2016, 12:38       jcxz Цитата(AlexandrY @ Aug 4 2016, 18:38) Есл... Aug 5 2016, 08:28        AlexandrY Цитата(jcxz @ Aug 5 2016, 11:28) Неэффект... Aug 5 2016, 10:52         jcxz Цитата(AlexandrY @ Aug 5 2016, 16:52) Т.е... Aug 8 2016, 11:24          AlexandrY Цитата(jcxz @ Aug 8 2016, 14:24) Идея про... Aug 8 2016, 12:47           jcxz Цитата(AlexandrY @ Aug 8 2016, 18:47) Это... Aug 9 2016, 10:55          scifi Цитата(jcxz @ Aug 8 2016, 14:24) Идеально... Aug 9 2016, 11:29           jcxz Цитата(scifi @ Aug 9 2016, 17:29) Ну здра... Aug 9 2016, 11:42            scifi Цитата(jcxz @ Aug 9 2016, 14:42) А каким ... Aug 9 2016, 11:49            AlexandrY Цитата(jcxz @ Aug 9 2016, 14:42) А каким ... Aug 9 2016, 13:07             jcxz Цитата(AlexandrY @ Aug 9 2016, 19:07) Да ... Aug 10 2016, 06:37              scifi Цитата(jcxz @ Aug 10 2016, 09:37) Каким о... Aug 10 2016, 06:57               demiurg_spb Цитата(scifi @ Aug 10 2016, 09:57) Коллег... Aug 10 2016, 09:07               zltigo QUOTE (scifi @ Aug 10 2016, 09:57) У меня... Aug 10 2016, 09:41                scifi Цитата(zltigo @ Aug 10 2016, 12:41) Ну Вы... Aug 10 2016, 09:50               jcxz Цитата(scifi @ Aug 10 2016, 12:57) У меня... Aug 10 2016, 10:07                scifi Цитата(jcxz @ Aug 10 2016, 13:07) Вообще-... Aug 10 2016, 10:12              AlexandrY Цитата(jcxz @ Aug 10 2016, 09:37) Мне каж... Aug 10 2016, 09:22               jcxz Цитата(AlexandrY @ Aug 10 2016, 15:22) Си... Aug 10 2016, 10:34                scifi Цитата(jcxz @ Aug 10 2016, 13:34) И нет в... Aug 10 2016, 11:10                 jcxz Цитата(scifi @ Aug 10 2016, 17:10) О госп... Aug 10 2016, 11:43                  AlexandrY Цитата(jcxz @ Aug 10 2016, 14:43) Не вижу... Aug 10 2016, 11:48                   jcxz Цитата(AlexandrY @ Aug 10 2016, 17:48) Пр... Aug 10 2016, 11:52                    AlexandrY Цитата(jcxz @ Aug 10 2016, 14:52) Я так и... Aug 10 2016, 12:10                     jcxz Цитата(AlexandrY @ Aug 10 2016, 18:10) Ну... Aug 10 2016, 12:25                  scifi Цитата(jcxz @ Aug 10 2016, 14:43) Хорошо.... Aug 10 2016, 20:06                   jcxz Цитата(scifi @ Aug 11 2016, 02:06) Пока я... Aug 11 2016, 01:58                    AlexandrY Цитата(jcxz @ Aug 11 2016, 04:58) И причи... Aug 11 2016, 06:30                     jcxz Цитата(AlexandrY @ Aug 11 2016, 12:30) 70... Aug 11 2016, 08:23                      AlexandrY Цитата(jcxz @ Aug 11 2016, 11:23) Только ... Aug 11 2016, 09:15                       jcxz Цитата(AlexandrY @ Aug 11 2016, 15:15) Ви... Aug 12 2016, 03:35                AlexandrY Цитата(jcxz @ Aug 10 2016, 13:34) А её пр... Aug 10 2016, 11:42                zltigo QUOTE (jcxz @ Aug 10 2016, 13:34) char b[... Aug 10 2016, 12:53                 jcxz Цитата(zltigo @ Aug 10 2016, 18:53) Из ли... Aug 10 2016, 13:44 ViKo В Кейловской РТОС можно включить контроль переполн... Aug 12 2016, 05:25 Kabdim Может попробовать использовать MPU? Расставить за ... Aug 12 2016, 07:54 AlexandrY Цитата(Kabdim @ Aug 12 2016, 10:54) Может... Aug 12 2016, 08:08 jcxz Цитата(Kabdim @ Aug 12 2016, 13:54) Может... Aug 12 2016, 08:48  ViKo Цитата(jcxz @ Aug 12 2016, 11:48) Как это... Aug 12 2016, 09:31   jcxz Цитата(ViKo @ Aug 12 2016, 15:31) Нет. Та... Aug 12 2016, 09:45    scifi Цитата(jcxz @ Aug 12 2016, 12:45) хм... с... Aug 12 2016, 09:59     zltigo QUOTE (scifi @ Aug 12 2016, 12:59) Мануал... Aug 12 2016, 10:47  AlexandrY Цитата(jcxz @ Aug 12 2016, 11:48) Ну-ну п... Aug 12 2016, 13:36   jcxz Цитата(AlexandrY @ Aug 12 2016, 19:36) А ... Aug 13 2016, 08:16    zltigo QUOTE (jcxz @ Aug 13 2016, 11:16) В динам... Aug 13 2016, 20:09
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|