新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > F020在線升級程序

        F020在線升級程序

        作者: 時間:2016-11-09 來源:網絡 收藏

        分為三大CODE保存區:
        升級程序區+用戶程序區+用戶Main入口地址保存區

        復位0x0000-0x0003地址保存LJMP main命令
        例如
        C:0x000002F741LJMPSTARTUP1(C:F741)
        0x0000 – 0x0003存儲的就是02F741 ,其中02是LJMP命令碼,F741是跳轉地址(main),其實也不是main的地址,在main之前,還保護堆棧初始化等代碼(通過匯編可以看到)。

        0x0003之后的是各種中斷的地址,比如你的程序中
        void SMBUS_ISR (void) interrupt 7
        {
        }
        SMBUS_ISR這個SMBUS中斷函數的地址就保存在0x003B處

        一個程序實際上就是由中斷向量+用戶代碼程序構成
        其中中斷向量是在第一個扇區內

        對于KEIL來說,除非特別指定函數地址,在編寫完程序后,編譯器會自動分配函數的地址,也就說改動編譯后,中斷向量中的地址都可能發生改變

        對于KEIL,可以指定程序代碼的位址,但這個位址是用戶代碼地址。
        例如在Option For Target -àBL Loate -àcode Range 0XEA00-0XFDFF
        代碼實際區:中斷向量(第一個扇區)+ 0XEA00-0XFDFF


        關鍵詞: F020在線升

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 保康县| 通许县| 宁阳县| 政和县| 乐陵市| 江安县| 交口县| 化州市| 盈江县| 沐川县| 南木林县| 高邑县| 宁河县| 卢湾区| 海安县| 新乐市| 宁明县| 鄱阳县| 行唐县| 那坡县| 泗阳县| 安泽县| 东方市| 乐亭县| 兴宁市| 大兴区| 武陟县| 宁南县| 和龙市| 水富县| 高尔夫| 乳山市| 博罗县| 孟村| 准格尔旗| 铅山县| 南靖县| 和平县| 南澳县| 武鸣县| 大荔县|