<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Kinetis Software Development KitのトピックRe: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376912#M887</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;山崎さん、当方ではusb_dev.cの修正でもHardFaultは発生するようです。&lt;/P&gt;&lt;P&gt;CRC5EOFの値も確認できませんでした。&lt;/P&gt;&lt;P&gt;申し訳ありません。&lt;/P&gt;&lt;P&gt;HardFaultが発生しない条件でいろいろ試行してみたのですが、以下が一番理想形に近いと思われます。&lt;/P&gt;&lt;P&gt;ただし、以下の設定だと、文字列を入力後、Enterを入れて、あと1文字入力（この文字は無視される）しないと「Prompt&amp;gt; 」が表示されません。&lt;/P&gt;&lt;P&gt;どうしたら回避できるか試しましたが、回避できませんでした。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="jive_text_macro _jivemacro_uid_14245509108969621 jive_macro_code" jivemacro_uid="_14245509108969621" modifiedtitle="true"&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((CmdSendRequest == 1)&amp;amp;&amp;amp;(g_recv_size!=0)) { 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str_copy(g_curr_send_buf, "Prompt&amp;gt; ");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 8;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_recv_size = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

 &lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14245509108129468" jivemacro_uid="_14245509108129468"&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if(g_recv_size) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int32_t i; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Copy Buffer to Send Buff */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; g_recv_size; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //printf("Copied: %c\n", g_curr_recv_buf[i]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf[g_send_size++] = g_curr_recv_buf[i];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_recv_size = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (g_curr_recv_buf[g_recv_size]=='\r') {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

 &lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;状況的には、g_recv_size=0のときに、g_curr_send_bufに値を入れるとHardFaultになるようです。&lt;/P&gt;&lt;P&gt;この場合は、g_send_size=0になるのを待ち合わせればいいのかもしれません。&lt;/P&gt;&lt;P&gt;すみません、時間がなかったので、今日はこんなところまでです。&lt;/P&gt;&lt;P&gt;ところで、main関数の最初の部分でdbg_uartの初期化があったので、printfがVirturl COMでない方の端末に表示できると思ったのですが、無理みたいですね。printfが使えれば、もっと細かい状況が得られると思うのですが。&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 18 Feb 2015 11:39:29 GMT</pubDate>
    <dc:creator>yasuhikokoumoto</dc:creator>
    <dc:date>2015-02-18T11:39:29Z</dc:date>
    <item>
      <title>KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376895#M870</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;「usb_dev.c」での HardFault の回避方法を教えてください。&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;&lt;P&gt;/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KSDK_1.0.0 インストール&amp;nbsp;&amp;nbsp; =&amp;gt; インストール後再起動&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; インストール先&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D:\Temp\Freescale\ksdk_1.0.0&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; カスタム設定で以下をチェック&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; KSDK_1.0.0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FreeRTOS_V8.0.0&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IAR Embedded Workbench IDE を起動。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以下のワークスペースを開く&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; D:\Temp\Freescale\KSDK_1.0.0\usb\example\device\cdc\&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; virtual_com\sdk\iar\dev_cdc_virtual_com_frdmk64f120m_freertos&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dev_cdc_virtual_com_frdmk64f120m_freertos.eww&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Make&amp;nbsp;&amp;nbsp;&amp;nbsp; (DebugモードでMakeする。(とりあえず))&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ksdk_freertos_lib - Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; エラー: 0, ワーニング: 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以下のオプション設定を変更する。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一般オプション&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 「MISRA-C2004」タブ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MISRA-Cを有効にする(E): チェック有り -&amp;gt; チェックを外す。&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usbd_sdk_frdmk64f120m_freertos - Debug&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; エラー: 0, ワーニング: 29&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; オプションの変更は無し。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dev_cdc_virtual_com_frdmk64f120_freertos - Debug&amp;nbsp;&amp;nbsp;&amp;nbsp; エラー: 0, ワーニング: 0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; オプションの変更は無し。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 右クリックして「アクティブに設定」を選択する。&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Source code「virtual_com.c」の変更&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. sources配下の virtual_com.c の 392行目からの「void Virtual_Com_App(void)」&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; に以下(001)または(002)を追加する。(追加のパターンは(001)=正常と(002)=異常の 2種類)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. sources配下の virtual_com.c の最後尾に&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 「int str_copy(uint8_t dst_str[], uint8_t src_str[])」と&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 「int strlen(uint8_t char_count[])」&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; を追加する。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3. 「Virtual_Com_App(void)」より前に以下を定義する。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 「int str_copy(uint8_t dst_str[], uint8_t src_str[]);」&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 「int strlen(uint8_t char_count[]);」&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; をそれぞれMakeする。&lt;/P&gt;&lt;P&gt;/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; デバッガの設定&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. dev_cdc_virtual_com_frdmk64f120_freertos - Debug を右クリックしてオプションを開く&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. カテゴリのデバッガを選択して、設定タブの ドライバ(D):で「I-jet/JTAGjet」を選択する。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3. カテゴリのデバッガ配下の「I-jet/JTAGjet」を選択を選択して設定タブのリセット(R):を&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ハードウェアに設定する。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4. 同じく「I-jet/JTAGjet」の設定タブの ターゲット電源の「プローブから供給(F)」&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; のチェックを外す。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5. 「JTAG/SWD」の設定タブの インタフエースで「SWD(S)」を選択する。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6. OKを押してオプション設定を終了する。&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7. コンパイル後、デバッガを起動させ、mainで停止後、一度ハードリセットを実行する。、&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 再度mainで停止した箇所からプログラムを「実行」させる。(この時点ではまだ&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TeraTermは起動しない。)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8. TeraTermを起動させてUSB-Serialドライバで指定したCOMポート番号に接続。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (PCにはあらかじめ「mchpcdc.inf」にてドライバを設定しておく。)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ☆ ハードリセットは、TeraTermを終了させてから実施する。&lt;/P&gt;&lt;P&gt;/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 確認&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. 001 の場合は、Enterをキーボートから押下すると改行後に「Prompt&amp;gt; 」が表示される。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 回数に制限が無く正常に応答する。(表示は正常)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ┌──────────────────&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. 002 の場合は、Enterをキーボートから押下すると、以下のように表示され、&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11回目に以下の場所で止まる。(表示も異常)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ┌──────────────────&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; PrPrompt&amp;gt; PrPrompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; PrPrompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; PrPrompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.停止位置&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. 以下の「HardFault_Handler」の下の「B .」でカーソルが止まっている。&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; startup_MK64F12.s の385行目&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PUBWEAK NMI_Handler&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SECTION .text:CODE:REORDER:NOROOT(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NMI_Handler&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B .&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PUBWEAK HardFault_Handler&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SECTION .text:CODE:REORDER:NOROOT(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HardFault_Handler&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B .&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;= 385 行目&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PUBWEAK MemManage_Handler&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SECTION .text:CODE:REORDER:NOROOT(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MemManage_Handler&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. 逆アセンブリのウインドウでは、以下の「0x5bc6: 0xe7fe」でカーソルが止まっている。&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HardFault_Handller:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x5bc6: 0xe7fe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B.N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; HardFault_Handller&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ; 0x5bc6&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4. 停止直前の実行箇所&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以下のコード実行時に停止する。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ファイル名: usb_dev.c&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 実行命令:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS_dcache_flush_mlines((void*)buff_ptr,size); 内の&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize the new transfer descriptor */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;ep_num = ep_num;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;bdirection = USB_SEND;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;= 2回目の実行後停止(ステップ実行)&amp;nbsp;&amp;nbsp; 1118行目&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;wtotallength = size;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;wstartaddress = buff_ptr;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;wsofar = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;bstatus = USB_STATUS_TRANSFER_ACCEPTED;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;☆ Hard_Faultの回避方法について教えてください。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; よろしくお願いします。&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*(001)***************************************************************************/&lt;/P&gt;&lt;P&gt;void Virtual_Com_App(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* User Code */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(g_recv_size)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int32_t i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Copy Buffer to Send Buff */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; g_recv_size; i++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //printf("Copied: %c\n", g_curr_recv_buf[i]);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf[g_send_size++] = g_curr_recv_buf[i];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_recv_size = 0;&lt;/P&gt;&lt;P&gt;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &amp;lt;ここから追加&amp;gt; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str_copy(g_curr_send_buf, "\r\nPrompt&amp;gt; ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 10;&lt;/P&gt;&lt;P&gt;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &amp;lt;追加はここまで&amp;gt; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(g_send_size)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t error;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t size = g_send_size;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 0;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = USB_Class_CDC_Send_Data(g_app_handle, DIC_BULK_IN_ENDPOINT,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf, size);&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(error != USB_OK)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Failure to send Data Handling code here */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*(002)***************************************************************************/&lt;/P&gt;&lt;P&gt;void Virtual_Com_App(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* User Code */&lt;/P&gt;&lt;P&gt;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &amp;lt;ここから追加&amp;gt; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static int CmdSendRequest;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (CmdSendRequest == 1) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str_copy(g_curr_send_buf, "Prompt&amp;gt; ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 8;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &amp;lt;追加はここまで&amp;gt; */&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(g_recv_size)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int32_t i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Copy Buffer to Send Buff */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; g_recv_size; i++)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //printf("Copied: %c\n", g_curr_recv_buf[i]);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf[g_send_size++] = g_curr_recv_buf[i];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_recv_size = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 1; /* - - - - - - - - - - - - - - - &amp;lt;ここを追加&amp;gt; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(g_send_size)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t error;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t size = g_send_size;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 0;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = USB_Class_CDC_Send_Data(g_app_handle, DIC_BULK_IN_ENDPOINT,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf, size);&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(error != USB_OK)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Failure to send Data Handling code here */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*****************************************************************************/&lt;/P&gt;&lt;P&gt;int str_copy(uint8_t dst_str[], uint8_t src_str[]);&lt;/P&gt;&lt;P&gt;int strlen(uint8_t char_count[]);&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;int str_copy(uint8_t dst_str[], uint8_t src_str[])&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int n;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = strlen(src_str);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; n; i++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dst_str[i] = src_str[i];&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dst_str[i] = 0x00;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return n;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*****************************************************************************/&lt;/P&gt;&lt;P&gt;int strlen(uint8_t char_count[])&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int c;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = 0;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; 255 ; i++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (char_count[i] == 0x00) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c = i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i = 255;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return c;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*****************************************************************************/&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Feb 2015 07:16:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376895#M870</guid>
      <dc:creator>山崎直己</dc:creator>
      <dc:date>2015-02-14T07:16:26Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376896#M871</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;こんにちは　山崎さん。&lt;/P&gt;&lt;P&gt;「prompt&amp;gt;」の表示がおかしいのは「\r\n」を転送してないからと思われます。この2文字の転送を止めた理由は何でしょうか。Hard Faultですが、理由はよくわかりません。ただ、(002)のケースではCmdSendRequestをvolatile宣言しないとコンパイラの最適化によって 「if (CmdSendRequest == 1) {」が正しく実行されない恐れがあります。&lt;/P&gt;&lt;P&gt;核心を突いたアドバイスはできませんが、助けになれば幸いです。&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Feb 2015 11:34:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376896#M871</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2015-02-14T11:34:51Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376897#M872</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;koumotoさん、アドバイスありがとうございます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;以下のように「volatile」宣言してみましたが、状況は変わりませんでした。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile static int CmdSendRequest;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;コンパイラの最適化オプションは「なし」に設定しています。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;また、002で「Prompt&amp;gt; 」に「\r\n」を付けていないのは、元々の「Virtual_Com_App」&lt;/P&gt;&lt;P&gt;が受信したデータを送信バッファ( g_curr_send_buf )に転送して、エコーバック処理&lt;/P&gt;&lt;P&gt;をしているためです。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PCで Enter押下&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; └&amp;gt; 受信した「\r\n」を送信バッファへ転送,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 送信バイト数( g_send_size )を設定&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; └&amp;gt; 送信処理で「\r\n」を送信&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; └&amp;gt;User Code側で「Prompt&amp;gt; 」を送信&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Feb 2015 12:38:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376897#M872</guid>
      <dc:creator>山崎直己</dc:creator>
      <dc:date>2015-02-14T12:38:22Z</dc:date>
    </item>
    <item>
      <title>Re: Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376898#M873</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;山崎さん、助けにならなくてすみません。&lt;/P&gt;&lt;P&gt;いま、HardFault_Handlerは無限ループで止まっているようですね。HardFault_Handlerを以下のものに差し替えて、例外情報を教えてくれませんか？とくにPCからどの命令でHardFaultを発生しているとか。KSDK_1.0.0なら、main関数の手前あたりに以下のHardFault_Handlerを記載すれば自動的に置き換わると思います。RTOSを使われているみたいなので、そちらからの制限でハンドラが差し替わらないかもしれませんが。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14239209909884671" jivemacro_uid="_14239209909884671" modifiedtitle="true"&gt;
&lt;P&gt;void hard_fault_handler_c(unsigned int * hardfault_args)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int stacked_r0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int stacked_r1;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int stacked_r2;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int stacked_r3;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int stacked_r12;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int stacked_lr;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int stacked_pc;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned int stacked_psr;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Exception stack frame&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stacked_r0 = ((unsigned long) hardfault_args[0]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stacked_r1 = ((unsigned long) hardfault_args[1]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stacked_r2 = ((unsigned long) hardfault_args[2]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stacked_r3 = ((unsigned long) hardfault_args[3]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stacked_r12 = ((unsigned long) hardfault_args[4]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stacked_lr = ((unsigned long) hardfault_args[5]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stacked_pc = ((unsigned long) hardfault_args[6]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; stacked_psr = ((unsigned long) hardfault_args[7]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("[Hard fault handler]\n");&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("R0 = %x\n", stacked_r0);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("R1 = %x\n", stacked_r1);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("R2 = %x\n", stacked_r2);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("R3 = %x\n", stacked_r3);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("R12 = %x\n", stacked_r12);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("LR = %x\n", stacked_lr);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("PC = %x\n", stacked_pc);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("PSR = %x\n", stacked_psr);&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("BFAR = %x\n", (*((volatile unsigned long *)(0xE000ED38))));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("CFSR = %x\n", (*((volatile unsigned long *)(0xE000ED28))));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("HFSR = %x\n", (*((volatile unsigned long *)(0xE000ED2C))));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("DFSR = %x\n", (*((volatile unsigned long *)(0xE000ED30))));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printf ("AFSR = %x\n", (*((volatile unsigned long *)(0xE000ED3C))));&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(;;)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {}&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;__stackless void HardFault_Handler(void)&lt;/P&gt;
&lt;P&gt;{&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; asm volatile(&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "movs r0, #4\t\n"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "mov&amp;nbsp; r1, lr\t\n"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "tst&amp;nbsp; r0, r1\t\n" /* Check EXC_RETURN[2] */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "beq 1f\t\n"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "mrs r0, psp\t\n"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "b&amp;nbsp; hard_fault_handler_c\t\n"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "1:mrs r0,msp\t\n"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "b hard_fault_handler_c\t\n"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : /* no output */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : /* no input */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : "r0" /* clobber */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;HardFaultが発生する理由の1つは使用するモジュールへのクロック供給がされてない場合が多いのですが、山崎さんの場合はプログラムを変更しただけでHardFaultが発生するようになったのでそれには当たらないと思います。後、考えられることは、スタックオーバーフローか保護されたSRAM領域へのアクセスが怪しいです。もし、スタックオーバーフローの場合、上述の関数を実行してもHardFaultが発生し続ける可能性があります。それを防ぐためにはMSPとPSPが分離されている必要があります。山崎さんの使用されているRTOSがスタック領域を分祀しているかどうかはわかりませんが、スタックは分離することをお勧めします。&lt;/P&gt;&lt;P&gt;以上のコメントが助けになれば幸いです。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 14 Feb 2015 13:37:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376898#M873</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2015-02-14T13:37:41Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376899#M874</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;山崎さん、HardFaultの発生する箇所は特定されていたのですね。失礼しました。&lt;/P&gt;&lt;P&gt;(001)と(002)のコードを比べたとき、(002)ではg_send_sizeの値が常に意図通りになるのか心配です。&lt;/P&gt;&lt;P&gt;(002)において、&lt;/P&gt;&lt;P&gt; if (CmdSendRequest == 1) {　…　&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;をif(g_recv_size){ }と&amp;nbsp; if(g_send_size){ }の間に持ってきてもHardFaultは発生するのでしょうか？&lt;/P&gt;&lt;P&gt;この場合は(001)と等価だと思うのですが、いかがでしょう？&lt;/P&gt;&lt;P&gt;ところで、(001)にしても(002)にしても、if(g_recv_size){ }で更新されるg_send_sizeを転送が完了したかどうかわからないうちに(001)では10、(002)では8に書き換えていますが、これは大丈夫なのでしょうか？&lt;/P&gt;&lt;P&gt;推測が外れていたら無視してください。&lt;/P&gt;&lt;P&gt;Yasuhiko koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 15 Feb 2015 12:03:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376899#M874</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2015-02-15T12:03:44Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376900#M875</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;koumotoさん、アドバイスありがとうございます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;「g_send_size」については if(g_send_size){ }に入ったときに「g_send_size=0」&lt;/P&gt;&lt;P&gt;としているため、「10/8」への書き換えは問題は無いと思いますが、関数を追っていくと&lt;/P&gt;&lt;P&gt;「g_curr_send_buf」が ずっとポインタ渡しになっています。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;そのため、&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; PrPrompt&amp;gt; PrPrompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ~~-------&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&amp;nbsp; └&amp;gt; 「if (CmdSendRequest == 1) {}」で「g_curr_send_buf」に上書きした"Prompt&amp;gt; "&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; └&amp;gt; 「\r\n, size=2」(if(g_recv_size){ }で受信した「\r\n」)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ※ 「\r\n」の送信処理前に「g_curr_send_buf」が"Prompt&amp;gt; "に書き換えられている。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;となっていて、送信バッファの競合が起こって「HardFault」になっているのではと思います。&lt;/P&gt;&lt;P&gt;ただ、「Enter」を押下する回数が固定なのが気になりますが。&lt;/P&gt;&lt;P&gt;送信完了がわかるフラグがあれば回避できるかもしれません。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;スタック使用量については「1%」に満たないため、スタックオーバーフローは起こっていません&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Feb 2015 00:07:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376900#M875</guid>
      <dc:creator>山崎直己</dc:creator>
      <dc:date>2015-02-16T00:07:24Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376901#M876</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;山崎さん、こんにちは。&lt;/P&gt;&lt;P&gt;少なくとも、g_send_sizeが0でないときに、g_curr_send_bufの内容を変更するのはまずい気がします。&lt;/P&gt;&lt;P&gt;「Prompt&amp;gt;」をg_curr_send_bufに転送するのをg_send_size=0のときに限定してはいかがでしょうか？&lt;/P&gt;&lt;P&gt;私はUSBには詳しくないのですが、確実に転送完了を見るためには、USB0_ISTATの（4007_2080h）のTOKDNE（ビット3）を観測してみてはどうでしょうか？&lt;/P&gt;&lt;P&gt;あまり、助けになれなくて申し訳ありません。&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Feb 2015 02:16:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376901#M876</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2015-02-16T02:16:02Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376902#M877</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;koumotoさん、アドバイスありがとうございます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;「USB0_ISTAT」は割込みステータスで割込み処理の箇所でステータスをクリアするため、&lt;/P&gt;&lt;P&gt;「Virtual_Com_App」では条件が捉えられませんでした。&lt;/P&gt;&lt;P&gt;代わりに、&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t i = 0x800000;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (CmdSendRequest == 1) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(i) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i--;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str_copy(g_curr_send_buf, "Prompt&amp;gt; ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 8;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;でウエイトさせてみましたが、「11回目」のEnterで Hard_Faultしてしまいました。(最初と状況は同じです。)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ┌──────────────────&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&amp;lt;┘(1)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; &amp;lt;┘(2)&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;= Enter入力後約0.5秒後に表示&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; &amp;lt;┘(3)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; &amp;lt;┘(4)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; &amp;lt;┘(5)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; &amp;lt;┘(6)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; &amp;lt;┘(7)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; &amp;lt;┘(8)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; &amp;lt;┘(9)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; &amp;lt;┘(10)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; &amp;lt;┘(11)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │_&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;= カーソル位置&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;どうも、バッファ競合ではなさそうです。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Feb 2015 04:12:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376902#M877</guid>
      <dc:creator>山崎直己</dc:creator>
      <dc:date>2015-02-16T04:12:38Z</dc:date>
    </item>
    <item>
      <title>Re: Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376903#M878</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;山崎さん&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;やはり、g_send_sizeやg_recv_sizeを無視してg_curr_send_bufを書きつぶしているのが悪い気がします。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14240612379008918" jivemacro_uid="_14240612379008918"&gt;
&lt;P&gt;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &amp;lt;ここから追加&amp;gt; */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; static int CmdSendRequest;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (CmdSendRequest == 1) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str_copy(g_curr_send_buf, "Prompt&amp;gt; ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 8;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &amp;lt;追加はここまで&amp;gt; */&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(g_recv_size)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int32_t i;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Copy Buffer to Send Buff */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; g_recv_size; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //printf("Copied: %c\n", g_curr_recv_buf[i]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf[g_send_size++] = g_curr_recv_buf[i];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_recv_size = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 1; /* - - - - - - - - - - - - - - - &amp;lt;ここを追加&amp;gt; */
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;の部分を&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14240612872416140" jivemacro_uid="_14240612872416140"&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if(g_recv_size)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int32_t i;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Copy Buffer to Send Buff */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; g_recv_size; i++)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //printf("Copied: %c\n", g_curr_recv_buf[i]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf[g_send_size++] = g_curr_recv_buf[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i=0; i&amp;lt;8 ; i++)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf[g_send_size++] = "Prompt&amp;gt; "[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_recv_size = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str_copy(g_curr_send_buf, "Prompt&amp;gt; ");&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 8;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;としたら、どうでしょうか？これなら修正前とアルゴリズムに変化がないと思います。&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Feb 2015 04:36:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376903#M878</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2015-02-16T04:36:05Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376904#M879</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;koumotoさん、アドバイスありがとうございます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;上記コードではTeraTermが接続された時点で以下のように"Prompt&amp;gt; "が表示されて&lt;/P&gt;&lt;P&gt;「Hard_Fault」で止まってしまいます。(停止場所等は最初の状況と同じです。)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ┌────────────────────────────&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │Prompt&amp;gt; Prompt&amp;gt; Prompt&amp;gt; Prompt&amp;gt; Prompt&amp;gt; Prompt&amp;gt; Prompt&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;「str_copy(g_curr_send_buf, "Prompt&amp;gt; ");」を&lt;/P&gt;&lt;P&gt;「for ～ {&lt;/P&gt;&lt;P&gt;g_curr_send_buf[g_send_size++] = "Prompt&amp;gt; "[i];&lt;/P&gt;&lt;P&gt;} 」に替えてみましたが、&lt;/P&gt;&lt;P&gt;状況は変わりませんでした。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;「g_send_size」については if(g_send_size){ } に入ったときに&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t size = g_send_size;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size=0;&lt;/P&gt;&lt;P&gt;と「0」に書き換えていて、「USB_Class_CDC_Send_Data(... );」では「size」は&lt;/P&gt;&lt;P&gt;ポインタではなく数値渡しとなっています。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Feb 2015 05:47:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376904#M879</guid>
      <dc:creator>山崎直己</dc:creator>
      <dc:date>2015-02-16T05:47:31Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376905#M880</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;山崎さん、そうですか。追加したelse以降のstr_copyのせいで「Prompt &amp;gt; 」が出続けるのですね。&lt;/P&gt;&lt;P&gt;else以降を削除した場合、状況に変化はありますでしょうか？&lt;/P&gt;&lt;P&gt;少なくとも、最初から「Prompt&amp;gt; 」が出ることはなくなると思います。&lt;/P&gt;&lt;P&gt;たびたび、すみません。&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Feb 2015 06:42:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376905#M880</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2015-02-16T06:42:07Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376906#M881</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;koumotoさん、アドバイスありがとうございます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;elseの箇所を削除した場合は、「001」のパターンと同じになり、「001」の結果通り&lt;/P&gt;&lt;P&gt;正常に出力されます。&lt;/P&gt;&lt;P&gt;この場合は、応答がエコーバック的な応答となり、別タスクで作成した出力したい&lt;/P&gt;&lt;P&gt;メッセージが出力出来なくなります。&lt;/P&gt;&lt;P&gt;(本来は「if (CmdSendRequest == 1) { ... }」で別に設定されたバッファから&lt;/P&gt;&lt;P&gt;メーセージのコピー処理をしたいです。)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;また、KSDK_1.1.0 で改善されていないかを確認をするため、インストールして&lt;/P&gt;&lt;P&gt;最初に記載した通りの手順で起動させましたが、PC側で USB-Serialのポート&lt;/P&gt;&lt;P&gt;(実際には COM ポート)が認識できず、デバイスマネージャで不明デバイスに&lt;/P&gt;&lt;P&gt;なってしまい、COMポートに接続出来ませんでした。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Feb 2015 07:45:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376906#M881</guid>
      <dc:creator>山崎直己</dc:creator>
      <dc:date>2015-02-16T07:45:55Z</dc:date>
    </item>
    <item>
      <title>Re: Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376907#M882</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;山崎さん&lt;/P&gt;&lt;P&gt;すみません、意図が理解できていませんでした。&lt;/P&gt;&lt;P&gt;それならば(002)に戻って&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14241163320853286" jivemacro_uid="_14241163320853286"&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile static int CmdSendRequest=0;&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((CmdSendRequest == 1)&amp;amp;&amp;amp;(g_recv_size==0)&amp;amp;&amp;amp;(g_send_size==0)) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str_copy(g_curr_send_buf, "Prompt&amp;gt; ");
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 8;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ではいかがでしょうか？&lt;/P&gt;&lt;P&gt;山崎さんの環境がFRDM-K64Fだとさっき気づいたのでこちらでも試してみようと思いましたが、Virtual COM用のmicroBのUSBケーブルがありませんでした。明日、買ってきます。ソフトウェアのコンパイルまでは済んでいます。&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Feb 2015 18:27:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376907#M882</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2015-02-16T18:27:54Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376908#M883</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;koumotoさん、対応ありがとうございます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;以下のような構成です。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ボード (CPU:MK64FN1M0VLQ12)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ┌────┐&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ICE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ┌────────────┐&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;&amp;nbsp; ┌┐│&amp;nbsp; USBケーブル ┌─┐&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │┌┐&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;&amp;nbsp; ││├──────────┤&amp;nbsp; ├───┤│ │JTAG&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;&amp;nbsp; └┘│&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; └─┘&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │└┘&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;&amp;nbsp; ┌┐│&amp;nbsp; USBケーブル&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │┌─┐&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;&amp;nbsp; ││├────────────────┤│&amp;nbsp;&amp;nbsp; │USB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;&amp;nbsp; └┘│(virtual com で使用)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │└─┘&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; └───│┘&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; └─│──────────┘&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↓コネクタ形状&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ↓コネクタ形状&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ┌──────┐&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ＿&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │＝＝＝＝ │&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ／&amp;nbsp;&amp;nbsp;&amp;nbsp; ＼&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; └──────┘&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; │ ロ ロ │&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; └────┘&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;以下のように送信バッファの領域を替えてみましたが、結果は変わりませんでした。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &amp;lt;ここから追加&amp;gt; */&lt;/P&gt;&lt;P&gt;int str_copy(uint8_t dst_str[], uint8_t src_str[]);&lt;/P&gt;&lt;P&gt;int strlen(uint8_t char_count[]);&lt;/P&gt;&lt;P&gt;static uint8_t cmd_send_buf[DATA_BUFF_SIZE];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &amp;lt;追加はここまで&amp;gt; */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void Virtual_Com_App(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* User Code */ &lt;/P&gt;&lt;P&gt;/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &amp;lt;ここから追加(002)&amp;gt; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile static int CmdSendRequest;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; volatile static int CmdPromptRequest;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (CmdSendRequest == 1) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t error;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t cmd_size;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OSA_TimeDelay(100);&amp;nbsp; //delay 100ms&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str_copy(cmd_send_buf, "Prompt&amp;gt; ");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd_size = 8;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = USB_Class_CDC_Send_Data(g_app_handle, DIC_BULK_IN_ENDPOINT,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd_send_buf, cmd_size);&amp;nbsp; &amp;lt;------------------------- バッファ領域を替えてみました。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(error != USB_OK) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Failure to send Data Handling code here */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OSA_TimeDelay(100);&amp;nbsp; //delay 100ms&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Feb 2015 00:39:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376908#M883</guid>
      <dc:creator>山崎直己</dc:creator>
      <dc:date>2015-02-17T00:39:04Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376909#M884</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;koumotoさん、ご協力ありがとうございます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;現在の調査状況を連絡します。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;「usb_dev.c」の1103行目から呼び出される 「khci_dev.c」の「usb_status usb_dci_khci_get_xd (224行目)」&lt;/P&gt;&lt;P&gt;で、240行目で実行される if文で「usb_dev_ptr-&amp;gt;xd_entries」をチェックしているが、正常時は「1」が返って&lt;/P&gt;&lt;P&gt;くるが、Enterを 11回目に実行したときに「0」が返ってきて「USBERR_DEVICE_BUSY」で戻って(return)います。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;正常時の「1」が返って来た場合は、246行目の「*xd_ptr_ptr = usb_dev_ptr-&amp;gt;xd_head;」を実行して、&lt;/P&gt;&lt;P&gt;「xd_struct_t」にアドレスを設定しますが、「0」が返ってきた場合には「xd_struct_t」にアドレスが&lt;/P&gt;&lt;P&gt;設定されません。 (このときには、usb_dev_ptr-&amp;gt;xd_head にアドレスが設定されていません。)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;「xd_struct_t」にアドレスが設定されない状態で「usb_dev.c」に戻って来たときに、「xd_struct_t」で&lt;/P&gt;&lt;P&gt;構造体宣言されている「xd_ptr」のアドレスポインタが(自環境の場合)「0x00000008」で書き換えられない&lt;/P&gt;&lt;P&gt;ままになり、1118行目の「xd_ptr-&amp;gt;bdirection = USB_SEND;」の実行で「Hard_Fault」になっています。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ここで、1103行目で「error」がエラーとして返っていた場合に、1107行目からの「xd_ptr-&amp;gt;」構造体への&lt;/P&gt;&lt;P&gt;アクセスはしないようにしなければいけません。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;「virtual_com.c」の「Virtual_Com_App」で「g_curr_send_buf」への送信要求の位置が異なることで&lt;/P&gt;&lt;P&gt;なぜ Enterが 11回目実行された場合に「usb_dev_ptr-&amp;gt;xd_entries」が「0」で返ってくるのかを&lt;/P&gt;&lt;P&gt;調べる必要が有ります。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;---------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;usb_dev.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;usb_status usb_device_send_data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1066 行目&lt;/P&gt;&lt;P&gt;(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] the USB_USB_dev_initialize state structure */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; usb_device_handle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; handle,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] the Endpoint number */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ep_num,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] buffer to send */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; buff_ptr,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] length of the transfer */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint32_t&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; size&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ((usb_dev_interface_functions_struct_t*)\&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1103 行目&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usb_dev_ptr-&amp;gt;usb_dev_interface)-&amp;gt;dev_get_xd(usb_dev_ptr-&amp;gt;controller_handle, &amp;amp;xd_ptr);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize the new transfer descriptor */&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;ep_num = ep_num;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;bdirection = USB_SEND;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1118 行目&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;---------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;khci_dev.c&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;usb_status usb_dci_khci_get_xd&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 224 行目&lt;/P&gt;&lt;P&gt;(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; usb_device_handle handle,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* [IN] the dTD to enqueue */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_struct_t**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr_ptr&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!usb_dev_ptr-&amp;gt;xd_entries)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 240 行目&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OS_Unlock();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return USBERR_DEVICE_BUSY;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; *xd_ptr_ptr = usb_dev_ptr-&amp;gt;xd_head;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 246 行目&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (usb_dev_ptr-&amp;gt;xd_head)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;---------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Feb 2015 04:32:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376909#M884</guid>
      <dc:creator>山崎直己</dc:creator>
      <dc:date>2015-02-17T04:32:14Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376910#M885</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;山崎さん、こんばんは。&lt;/P&gt;&lt;P&gt;当方でプログラムをビルドして実行しました。&lt;/P&gt;&lt;P&gt;再現しました。が、この状況はICEがないと追いきれないと思います。&lt;/P&gt;&lt;P&gt;しかし、11回目という回数は入力する文字に依存するようです。&lt;/P&gt;&lt;P&gt;Enterキーの場合は11回ですが、aとかですと5回以内に止まってしまいます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14242068883085180" jivemacro_uid="_14242068883085180"&gt;
&lt;P&gt;if((CmdSendRequest == 1)&amp;amp;&amp;amp;(g_recv_size)) {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 0;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str_copy(g_curr_send_buf, "Prompt&amp;gt; ");&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 8;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;であれば、HardFaultは発生しません。(001)と等価なので当たり前といえば当たり前ですが。&lt;/P&gt;&lt;P&gt;すみません、これでは意図違いである理由って何でしたっけ？&lt;/P&gt;&lt;P&gt;別のバッファからコピーしたいだけならg_recv_sizeを見るのもありかなと思います。&lt;/P&gt;&lt;P&gt;ただし、この場合、約1文字入力ごとに「Prompt&amp;gt; 」が表示されてしまいます。&lt;/P&gt;&lt;P&gt;(001)の場合も同様です。本来、こういう意図のプログラムなのでしょうか？&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;IMG alt="pastedImage_3.png" src="https://community.nxp.com/t5/image/serverpage/image-id/50581i0BE3D1C33AAF268B/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_3.png" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;すみません、やりたかったことは、文字列をいれてCR＋LFを入力した後に「Prompt&amp;gt; 」の表示なのでしょうか？&lt;/P&gt;&lt;P&gt;本来のプログラムが1文字以上の入力があればすぐさまVirtuel COMに文字を出力するものなのでCR+LFを待ち合わせるのは難しい気がします。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2020 13:14:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376910#M885</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2020-11-02T13:14:39Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376911#M886</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;koumotoさん、確認ありがとうございます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;やりたい事は、&lt;/P&gt;&lt;P&gt;&amp;nbsp; 1. コマンド文字列を入力後に、結果を返して、最後にプロンプトを出力します。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (コマンド解析と結果の作成は別のタスクで実施します。)&lt;/P&gt;&lt;P&gt;&amp;nbsp; 2. 装置側でイベントが起こった時に、何が起こったかがわかるように自立的にイベント内容を出力します。&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (イベント内容の作成は別のタスクで実施します。)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;上記の 1はCR/LFの受信後なのでなんとかなりそうですが、2の自立的に出力をする事が難しそうです。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CR/LFの処理については、以下で対応出来そうです。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (str_comp(g_curr_recv_buf, InCrLf) == 0) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/*----------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;int str_comp(uint8_t dst_str[], uint8_t src_str[])&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int n;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = str_len(src_str);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; n; i++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (dst_str[i] != src_str[i]) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return(0);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;/*----------------------------------------------------------------------*/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[usb_dev.c]を以下のようにコードを追加する事で、「Hard_Fault」は回避できそうです。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (((usb_dev_interface_functions_struct_t*)\&lt;/P&gt;&lt;P&gt;1101&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usb_dev_ptr-&amp;gt;usb_dev_interface)-&amp;gt;dev_get_xd != NULL)&lt;/P&gt;&lt;P&gt;1102&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;1103&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ((usb_dev_interface_functions_struct_t*)\&lt;/P&gt;&lt;P&gt;1104&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usb_dev_ptr-&amp;gt;usb_dev_interface)-&amp;gt;dev_get_xd(usb_dev_ptr-&amp;gt;controller_handle, &amp;amp;xd_ptr);&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;1105&lt;/P&gt;&lt;P&gt;1106 /*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; エラーで返ってきた時に以下の「xd_ptr-&amp;gt;」アクセスでベクトルテーブルにアクセスして Hard_Fault になるため&lt;/P&gt;&lt;P&gt;1107&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; エラーコードを付けて戻るようにする。&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp;&amp;nbsp; 2015/02/17 by N.Y */&lt;/P&gt;&lt;P&gt;1108 #if 1&lt;/P&gt;&lt;P&gt;1109&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error != USB_OK) {&lt;/P&gt;&lt;P&gt;1110&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return error;&lt;/P&gt;&lt;P&gt;1111&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;1112 #endif&lt;/P&gt;&lt;P&gt;1113&lt;/P&gt;&lt;P&gt;1114&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;上記、1105行目～113行目まで追加しました。&lt;/P&gt;&lt;P&gt;これで「void Virtual_Com_App(void)」までエラーコードを伝えられます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;こちらの環境では、&lt;/P&gt;&lt;P&gt;異常になったときのエラーコードは、「USBERR_DEVICE_BUSY = 0xc1」が返って来ています。&lt;/P&gt;&lt;P&gt;このときに、「USB0_ERRSTAT」が「0x02」となり、「CRC5EOF」のビットが「1」となっています。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;異常になったときに「USB0_ERRSTAT」で「CRC5EOF」のビットが「1」になっていないかの確認は可能でしょうか。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Feb 2015 01:33:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376911#M886</guid>
      <dc:creator>山崎直己</dc:creator>
      <dc:date>2015-02-18T01:33:03Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376912#M887</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;山崎さん、当方ではusb_dev.cの修正でもHardFaultは発生するようです。&lt;/P&gt;&lt;P&gt;CRC5EOFの値も確認できませんでした。&lt;/P&gt;&lt;P&gt;申し訳ありません。&lt;/P&gt;&lt;P&gt;HardFaultが発生しない条件でいろいろ試行してみたのですが、以下が一番理想形に近いと思われます。&lt;/P&gt;&lt;P&gt;ただし、以下の設定だと、文字列を入力後、Enterを入れて、あと1文字入力（この文字は無視される）しないと「Prompt&amp;gt; 」が表示されません。&lt;/P&gt;&lt;P&gt;どうしたら回避できるか試しましたが、回避できませんでした。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c#" __jive_macro_name="code" class="jive_text_macro _jivemacro_uid_14245509108969621 jive_macro_code" jivemacro_uid="_14245509108969621" modifiedtitle="true"&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((CmdSendRequest == 1)&amp;amp;&amp;amp;(g_recv_size!=0)) { 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; str_copy(g_curr_send_buf, "Prompt&amp;gt; ");&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size = 8;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_recv_size = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

 &lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14245509108129468" jivemacro_uid="_14245509108129468"&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if(g_recv_size) 
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int32_t i; 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Copy Buffer to Send Buff */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; g_recv_size; i++)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //printf("Copied: %c\n", g_curr_recv_buf[i]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf[g_send_size++] = g_curr_recv_buf[i];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_recv_size = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (g_curr_recv_buf[g_recv_size]=='\r') {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CmdSendRequest = 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

 &lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;状況的には、g_recv_size=0のときに、g_curr_send_bufに値を入れるとHardFaultになるようです。&lt;/P&gt;&lt;P&gt;この場合は、g_send_size=0になるのを待ち合わせればいいのかもしれません。&lt;/P&gt;&lt;P&gt;すみません、時間がなかったので、今日はこんなところまでです。&lt;/P&gt;&lt;P&gt;ところで、main関数の最初の部分でdbg_uartの初期化があったので、printfがVirturl COMでない方の端末に表示できると思ったのですが、無理みたいですね。printfが使えれば、もっと細かい状況が得られると思うのですが。&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Feb 2015 11:39:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376912#M887</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2015-02-18T11:39:29Z</dc:date>
    </item>
    <item>
      <title>Re: Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376913#M888</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;山崎さん、申し訳ないです。&lt;/P&gt;&lt;P&gt;当方ではどうしてもHardFaultを回避する方法を発見できませんでした。&lt;/P&gt;&lt;P&gt;おそらく、山崎さんがやりたいことは、最初の(001)に近い、次の処理しかないと思います。&lt;/P&gt;&lt;P&gt;これは、(002)での追加をすべて削除しています。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="c++" __jive_macro_name="code" class="jive_text_macro jive_macro_code _jivemacro_uid_14245513615423954" jivemacro_uid="_14245513615423954"&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; if(g_recv_size)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int32_t i;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Copy Buffer to Send Buff */&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (i = 0; i &amp;lt; g_recv_size; i++)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //printf("Copied: %c\n", g_curr_recv_buf[i]);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf[g_send_size++] = g_curr_recv_buf[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_recv_size = 0;&lt;/P&gt;
&lt;P&gt;#if 1&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (g_curr_recv_buf[g_recv_size]=='\r') {&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i=0; i&amp;lt;8; i++){&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_curr_send_buf[g_send_size+i]="Prompt&amp;gt; "[i];&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_send_size+=8;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;
&lt;P&gt;#endif&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;

&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="prompt.jpg"&gt;&lt;IMG alt="prompt.jpg" src="https://community.nxp.com/t5/image/serverpage/image-id/50682i4B89C1A1371EC7EF/image-size/large?v=v2&amp;amp;px=999" title="prompt.jpg" /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;この記述ならばHardFaultは発生しませんし、Enterを押した直後に「Prompt&amp;gt; 」が表示されます。&lt;/P&gt;&lt;P&gt;それまでに入力された文字列（TOKEN？）はg_curr_recv_bufの中に入っていると思います。&lt;/P&gt;&lt;P&gt;すみません、もうこれ以上は、ギブアップです。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yasuhiko Koumoto.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2020 13:14:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376913#M888</guid>
      <dc:creator>yasuhikokoumoto</dc:creator>
      <dc:date>2020-11-02T13:14:41Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK_1.0.0 の「vertual_com.c」の動作で「usb_dev.c」にて HardFault する。</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376914#M889</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;koumotoさん、ご協力ありがとうございます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;[usb_drv.c]で、送信側と同じような箇所が受信側にも有りました。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;1011&amp;nbsp;&amp;nbsp;&amp;nbsp; if (((usb_dev_interface_functions_struct_t*)\&lt;/P&gt;&lt;P&gt;1012&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usb_dev_ptr-&amp;gt;usb_dev_interface)-&amp;gt;dev_get_xd != NULL)&lt;/P&gt;&lt;P&gt;1013&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;1014&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error = ((usb_dev_interface_functions_struct_t*)\&lt;/P&gt;&lt;P&gt;1015&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; usb_dev_ptr-&amp;gt;usb_dev_interface)-&amp;gt;dev_get_xd(usb_dev_ptr-&amp;gt;controller_handle, &amp;amp;xd_ptr);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;追加&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (error != USB_OK) {&lt;/P&gt;&lt;P&gt;追加&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return error;&lt;/P&gt;&lt;P&gt;追加&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1016&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;1027&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize the new transfer descriptor */&lt;/P&gt;&lt;P&gt;1028&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;ep_num = ep_num;&lt;/P&gt;&lt;P&gt;1029&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;bdirection = USB_RECV;&lt;/P&gt;&lt;P&gt;1030&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;wtotallength = size;&lt;/P&gt;&lt;P&gt;1031&amp;nbsp;&amp;nbsp;&amp;nbsp; xd_ptr-&amp;gt;wstartaddress = buff_ptr;&lt;/P&gt;&lt;P&gt;&amp;nbsp; :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;koumotoさんの方では、TeraTermのボーレートが「115200」となっていますが、こちらでは「115200」&lt;/P&gt;&lt;P&gt;で安定しなかったため、安定する速度まで徐々に下げて「19200」で使用しています。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;送信処理の挿入箇所により、(002)で特定の回数で USBがエラー(こちらでは「CRC5EOF」ですが。)&lt;/P&gt;&lt;P&gt;となってしまう所は、ドライバのどこかに問題があるのではないかと思います。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;今は調査に時間が取れなくなったので、時間をみて調べてみます。&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;とりあえずは、受信処理の中で入力コマンドの処理が完了するまで待ち合わせして、Totalで64バイト&lt;/P&gt;&lt;P&gt;を超えないように応答を返していこうと考えています。&lt;/P&gt;&lt;P&gt;これでは自立メッセージが出せなくなりますが････&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;よろしくお願いします。&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Feb 2015 00:52:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-1-0-0-%E3%81%AE-vertual-com-c-%E3%81%AE%E5%8B%95%E4%BD%9C%E3%81%A7-usb-dev-c-%E3%81%AB%E3%81%A6-HardFault-%E3%81%99%E3%82%8B/m-p/376914#M889</guid>
      <dc:creator>山崎直己</dc:creator>
      <dc:date>2015-02-23T00:52:11Z</dc:date>
    </item>
  </channel>
</rss>

