版本 4b8e24c7753ecea4b99e67d2d72db36c6c4a9981
Changes from 4b8e24c7753ecea4b99e67d2d72db36c6c4a9981 to f0f190b7ba3ec7f87688f3d85de31c143b45aeb4
---
title: Lab33: GDB + FreeRTOS
toc: no
...
預期目標
------------
- 學習使用 GDB
- 追蹤和分析 FreeRTOS 運作
GDB
----
* http://www.slideshare.net/chenkaie/gdb-rocks-16951548
* http://descent-incoming.blogspot.tw/2013/04/for-stm32f4discovery-0-linux.html
QEMU + GDB 操作
----------------
- 假設 `Lab-32</embedded/Lab32>`_ 所使用 QEMU 的目錄已放在 workspace 目錄
.. code-block:: prettyprint
cd workspace
file qemu_stm32
- 開啟一個終端機,作以下輸入
.. code-block:: prettyprint
cd freertos-plus
make qemudbg
- 研究 ``tool/gdbscript`` 檔案內容
- 在 ``(gdb)`` 畫面中敲入以下指令,觀察相關輸出
* ``info registers``
* ``next``
* ``info registers``
* ``info breakpoints``
- 注意: 使用 Ubuntu 64-bit 版本時,需要另外安裝 lib32ncurses5
- sudo apt-get install lib32ncurses5
小提示
---------
* 若遇到 Linux 輸入法系統 ibus 一直干擾終端機,可用 ``pkill -9 ibus`` 強制結束輸入法
繳交作業
------------
- 截止日期:
* Oct 11, 2014 (含) 之前
- 更新作業提案到共筆網站: `Lab 33 / 作業共筆<https://embedded2014.hackpad.com/2014q3-Week-3-rR0cpeJsDcp>`_,需要標注自己的 ID
* 將符合作業提案的程式碼,提交到自行 fork 的 repository `freertos-plus<https://github.com/embedded2014/freertos-plus>`_ (設定與 `Lab 32</embedded/Lab32>`_ 相同)
* 可搭配 GDB 完成 `Lab 32</embedded/Lab32>`_ 提案中的開發工作
參考資訊
-------
- debugger 和 software emulator
* opencsl.openfoundry.org/Lab05_debugger.rst.html
* http://www.cis.nctu.edu.tw/~is92004/article/gdb.htm
- GDB 筆記
* http://loda.hala01.com/2012/04/gdb%E7%AD%86%E8%A8%98/
- 以 GDB 重新學習 C 語言程式設計
* http://www.slideshare.net/jserv/clang-usinggdb
- GDB Manual
* http://sourceware.org/gdb/current/onlinedocs/gdb/
* Commands, Remote Debugging, Extending GDB