2

割り込みを有効にし、各システムスティック割り込みがいくつかの関数を呼び出す LPC1857 用の作業プログラムを作成しました。LPC1857で完璧に動作します。LPC1850 で同じプログラムを実行しようとすると、プログラムの実行が 0xFFFFFFFE にジャンプし、割り込みが発生するたびに停止します。SysstickHandler で呼び出される関数は呼び出されません。プログラムがハンドラーの間違ったアドレスを取得しているように見えますが、それがどのようになるのかわかりません。その場合、LR は 0xFFFFFFF9 を指します。どちらのアドレスも予約済みです。

LPC1850 のリンカ ファイル (いくつかの無関係なポートの初期化以外の LPC1857 プロジェクトとの唯一の違い) を変更すると、次のようになります。

ENTRY(_start)                     
INPUT(& &)


MEMORY
{
    FLASH (rx) : ORIGIN = 0x1C000000, LENGTH = 16M
    SRAM (rwx) : ORIGIN = 0x10000000, LENGTH = 64K
}

SECTIONS

    .text :
    {
        _text = .;
        KEEP(*(.isr_vector))
        *startup.o(.text)   
        *(.text*)
        *(.glue_7t) *(.glue_7)
        *(.rodata*)
        _text_end = .;
    } > SRAM

    .bss :
    {
        _bss = .;
        *(.bss*)
        *(COMMON)
        _bss_end = .;
        . = ALIGN(4);
    } > SRAM

    .data : AT (ADDR(.text) + SIZEOF(.text))
    {
        _data = .;
        *(vtable)
        *(.data*)
        _data_end = .;
    } > SRAM

    . = ALIGN(4);
    .ARM.extab : {
      *(.ARM.extab*)
    } > SRAM

    . = ALIGN(4);
    __exidx_start = ABSOLUTE(.);
    .ARM.exidx : {
      *(.ARM.exidx*)
    } > SRAM
    __exidx_end = ABSOLUTE(.);



    .stack :
    {
      _stack_top = . + SIZEOF(.stack);
    } > SRAM
}

私が何を見逃しているか分かりますか?追加情報が必要な場合は、お知らせください。前もって感謝します!!

4

2 に答える 2

1

この質問は非常に古いものですが、最近この種の問題に遭遇したので、ここにいくつかの答えを示します。一般に、すべての割り込みが pc を0xfffffffeそれに導く場合、ベクター テーブルに何かひどく問題があることを示します。HW デバッガーを使用していて、このような状況にある場合は、SCB の VTOR レジスター [1] の内容を確認する必要があります。.isr_vector有効なベクター テーブル ( GCC ライド スタートアップ アセンブリから生成されたセクションなど) を指している必要があります。

LPCxxxx チップは私には異質なので、それらについての有用な詳細を提供することはできませんが、たとえば、LPC1850 と LPC1857 のメモリ アドレスに違いがあり、VTOR をどこかに設定する場合は、少し異なる設定にする必要があるかもしれません。最初に LPC1850 を起動 (リセット ハンドラを呼び出す) できるという事実は、デバイスの起動元である有効なベクトル テーブルがあることを示しています。

[1] 0xe000ed08 http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0552a/Ciheijba.html

于 2013-11-29T11:03:06.373 に答える
0

FLASHにセクションがない!? 1850 の場合、アドレス 0x1C000000 の外部フラッシュにプログラムをダウンロードします。

于 2013-06-08T07:03:45.027 に答える