處理裝置與系統程序變更方法
【專利摘要】一種處理裝置與系統程序變更方法,包括一程序存儲器與一處理器。程序存儲器包括至少一第一存儲器分區用以儲存一系統程序以及一第二存儲器分區用以儲存一應用程序。處理器耦接至程序存儲器,用以執行程序存儲器內所儲存的程序,其中處理器執行應用程序以致使處理裝置提供至少一既定功能,處理器執行系統程序以致使處理裝置變更應用程序,并且當系統程序的版本必須被變更時,處理器更自一主機接收一第一程序、將第一程序儲存于第二存儲器分區、驅動一重開機程序用以自第二存儲器分區重新開機并于重新開機后執行第一程序、并且根據第一程序變更系統程序。
【專利說明】處理裝置與系統程序變更方法
【技術領域】
[0001] 本發明是關于一種處理裝置與處理裝置的系統程序變更方法,特別關于一種可直 接變更系統程序的處理裝置與處理裝置的系統程序變更方法。
【背景技術】
[0002] 單芯片微電腦(Single-Chip Microcomputer),又稱微控制器(Microcon troller),或稱微處理器(Micro processing unit, MPU)是一種把中央處理器、存儲器、定 時/計數器(Timer/Counter)、各種輸入/輸出接口等都整合在一塊集成電路芯片上的微 型電腦。與應用在個人電腦中的通用型微處理器相比,微控制器更強調自供應(不用外接硬 件)和節約成本。微控制器的最大優點是體積小,但儲存量小,輸入/輸出接口簡單,功能較 低。
[0003] -般而言,微控制器要執行的功能是由內部程序所定義,而程序會被預先編程好, 并儲存于微控制器的內部存儲器中。因此,使用者可根據不同的需求設計出不同的程序,使 得微控制器能執行所需的功能。
[0004] 然而,燒錄程序碼的動作通常在工廠制作微控制器芯片的階段就已完成,然后使 用者再將微控制器芯片焊接在對應的電路中。換言之,當要改變或變更微控制器的程序碼, 使其達成不同的功能時,必須要將微控制器芯片自電路上解焊,此操作造成大幅的時間與 成本耗損。
【發明內容】
[0005] 本發明實施例提供了 一種無須解焊微控制器芯片,便可以變更微控制器內部程序 的方法。
[0006] 根據本發明的一實施例,一種處理裝置包括一程序存儲器與一處理器。程序存儲 器至少包括一第一存儲器分區用以儲存一系統程序以及一第二存儲器分區用以儲存一應 用程序。處理器耦接至程序存儲器,用以執行程序存儲器內所儲存的程序,其中處理器執行 應用程序以致使處理裝置提供至少一既定功能,處理器執行系統程序以致使處理裝置變更 應用程序,并且當系統程序的版本必須被變更時,處理器更自一主機接收一第一程序、將第 一程序儲存于第二存儲器分區、驅動一重開機程序用以自第二存儲器分區重新開機并于重 新開機后執行第一程序、并且根據第一程序變更系統程序。
[0007] 根據本發明的另一實施例,一種系統程序變更方法,由一處理裝置的一處理器執 行,用以變更儲存于處理裝置的一存儲器的一第一存儲器分區的一系統程序,其中處理裝 置通過執行儲存于存儲器的一第二存儲器分區的一應用程序以提供至少一既定功能,并且 處理裝置通過執行系統程序以變更應用程序,該方法包括:自一主機接收一第一程序;將 第一程序儲存于存儲器的第二存儲器分區;驅動一重開機程序用以自第二存儲器分區重新 開機;以及于重新開機后執行第一程序,用以根據第一程序變更系統程序,其中通過執行第 一程序,處理器被允許編程存儲器的第一存儲器分區。
【專利附圖】
【附圖說明】
[0008] 圖1是顯示根據本發明的一實施例所述的處理裝置方塊圖;
[0009] 圖2是顯示根據本發明的第一實施例所述的系統程序變更方法流程圖;
[0010] 圖3是顯示根據本發明的第一實施例所述的另一系統程序變更方法流程圖;
[0011] 圖4是顯示根據本發明的第二實施例所述的系統程序變更方法流程圖;
[0012] 圖5是顯示根據本發明的第二實施例所述的另一系統程序變更方法流程圖。
[0013] 附圖標記
[0014] 100處理裝置
[0015] 110處理器
[0016] 120、130?存儲器裝置
[0017] 122數據存儲器
[0018] 124程序存儲器
[0019] 126、128存儲器分區
[0020] 140輸入/輸出接口
[0021] 200 主機
【具體實施方式】
[0022] 為使本發明的制造、操作方法、目標和優點能更明顯易懂,下文特舉幾個實施例, 并配合所附附圖,作詳細說明如下:
[0023] 實施例:
[0024] 圖1是顯示根據本發明的一實施例所述的處理裝置方塊圖。根據本發明的一實施 例,處理裝置100可以是一單芯片微電腦(Single-Chip Microcomputer)、微控制器(Micro Controller Unit,MCU),或微處理器(Micro Processing Unit,MPU)。處理裝置 100 可包 括一處理器110、存儲器裝置120與130、與一輸入/輸出接口 140。處理器110可以是一中 央處理器。存儲器裝置120可進一步包括一數據存儲器122與一程序存儲器124。數據存 儲器122可用以儲存數據,而程序存儲器124可用以儲存由處理器110所執行的程序。
[0025] 程序存儲器124可被區隔為至少兩存儲器分區126與128。根據本發明的一實施 例,存儲器分區126 (或稱為第一存儲器分區)可為一系統程序存儲器分區,可用以儲存系 統程序,而存儲器分區128 (或稱第二存儲器分區)可為一應用程序存儲器分區,可用以儲 存應用程序。當處理器110執行應用程序時,可致使處理裝置100根據應用程序內所定義 的方式運作,以提供既定的功能。
[0026] 存儲器裝置130可用以儲存系統的硬件設定值,使得處理裝置100被供電(S卩,開 機)時,處理器110可根據存儲器裝置130內的硬件設定值判斷如何執行后續的動作。舉例 而言,當處理裝置100被開機后,處理器110可根據存儲器裝置130內的硬件設定值判斷是 要先執行存儲器分區126內所儲存的程序、或是先執行存儲器分區128內所儲存的程序。
[0027] 輸入/輸出接口 140可包括多種不同規格的通信接口,例如,通用型的輸入輸 出接口(General Purpose 1/0,簡稱為GPI0)、通用非同步收發傳輸器接口(Universal Asynchronous Receiver/Transmitter,簡稱為 UART)、內部集成電路(Inter-Integrated Circuit,簡稱為I2C)總線、或其它。一般而言,一外部主機200 (以虛線表示)可通過輸入/ 輸出接口 140連接至處理裝置100,用以通過輸入/輸出接口 140傳送或接收信息與數據。
[0028] 根據本發明的一實施例,存儲器分區126內所儲存的系統程序可在無須解焊微控 制器芯片的情況下,變更存儲器分區128內所儲存的應用程序。當處理器110執行存儲器 分區126內所儲存的系統程序時,可致使存儲器分區128內所儲存的應用程序被變更,以改 變處理裝置100的運作,此技術稱之為系統內編程(In system programming,簡稱為ISP)。 舉例而言,當系統程序(例如ISP程序)被執行時,處理器110可根據系統程序所預設的功 能自一主機200端(例如,一電腦或一 ISP工具)接收另一應用程序,并且可將此應用程序 寫入存儲器分區128內,用以取代原先的應用程序,此一流程稱為正規系統內編程(no rmal ISP)。
[0029] -般而言,當存儲器分區128內所儲存的應用程序被執行時,將數據寫入存儲器 分區126的相關指令會被禁能,換言之,處理器110通常不被允許編程存儲器分區126。因 此,當用以變更應用程序的系統程序必須被變更時,仍然無可避免地必須解焊處理裝置100 的芯片,重新燒錄不同的系統程序。
[0030] 本發明的一實施例另提出了一種系統程序變更方法,可用以實現在無須解焊微控 制器芯片的情況下,便可以變更存儲器分區126內所儲存的系統程序(例如:ISP程序)。
[0031] 圖2是顯示根據本發明的第一實施例所述的系統程序變更方法流程圖。值得注意 的是,圖2所示的流程圖是由處理裝置100的角度描述。首先,當處理裝置100被供電時, 根據存儲器裝置130內的硬件設定值,自第一存儲器分區開機(步驟S202)。舉例而言,處理 器110可讀取第一存儲器分區內所儲存的對應的開機程序,用以完成開機步驟。
[0032] 接著,為了變更系統程序,處理器110將系統程序(例如:ISP程序)的版本的相關 信息通過輸入/輸出接口 140傳送至一主機(步驟S204)。如上述,主機可以是一電腦或者 ISP工具。接著,處理器110可自主機接收一配對信息(步驟S206),配對信息可夾帶處理裝 置100的系統程序的一版本是否與主機端所儲存的一系統程序的一版本相同的相關信息。 更具體來說,主機在接收到處理裝置100的系統程序的版本的相關信息后,會與主機端所 儲存的系統程序的版本相比,用以確認兩者是否相同,并將確認結果夾帶于配對信息傳送 給處理裝置100。值得注意的是,主機端所儲存的系統程序可為一最新版本的系統程序,或 者一最佳或較佳版本的系統程序,或其他。
[0033] 在接收到配對信息后,處理器110將確認處理裝置100端所儲存的系統程序的版 本是否與主機端所儲存的系統程序的版本相同(步驟S208)。若確認處理裝置100端版本相 同時,則處理器110可進一步根據處理裝置100端所儲存的系統程序執行正規系統內編程 (normal ISP)(步驟S218),用以變更應用程序。
[0034] 若版本不同,則處理器110可自主機接收第一程序,并且將第一程序儲存于第二 存儲器分區中(步驟S210)。根據本發明的一實施例,第一程序可用以致使處理器110編程 第一存儲器分區。接著,處理器110可通過例如軟件驅動一重開機程序,用以自第二存儲器 分區重新開機,并且于重新開機后執行第一程序(步驟S212)。值得注意的是,由于此重開機 程序可通過軟件驅動,處理器110可不再去確認存儲器裝置130內與開機相關的硬件設定 值。
[0035] 接著,處理器110可根據第一程序變更系統程序。處理器110可進一步自主機接收 不同版本的系統程序、并且將此版本的系統程序寫入第一存儲器分區,用以取代原先的系 統程序(步驟S214)。根據本發明的一實施例,可通過適當的設計存儲器裝置130內的硬件 設定值,用以致使當第一程序被執行時,處理器110被允許編程第一存儲器分區。值得注意 的是,本領域相關技術人員當可理解,在執行第二存儲器分區中的程序時,允許處理器110 編程第一存儲器分區的方法并不限于以上所述的方法。舉例而言,可通過設計一監控電路 或程序,監控當處理器110執行第一程序時,可以允許處理器110編程第一存儲器分區。因 此,本發明并不限于以上所述的實施方式。
[0036] 當系統程序被變更后,處理器110可通過軟件驅動一重開機程序,用以自第一存 儲器分區重新開機,以執行新的系統程序(步驟S216),并根據此新的系統程序執行正規系 統內編程。
[0037] 圖3是顯示根據本發明的第一實施例所述的另一系統程序變更方法流程圖。值得 注意的是,圖3所示的流程圖是由主機200的角度描述。首先,對應于圖2的步驟S204,主 機200可接收處理裝置100的系統程序的版本的相關信息,并且設定配對信息的內容(步驟 S302)。主機200在接收到系統程序的版本的相關信息后,可與主機200所儲存的系統程序 的版本相比,用以確認兩者版本是否相同,以設定配對信息的內容。
[0038] 接著,主機200可將配對信息傳送至處理裝置(步驟S304)。接著,主機200可根據 配對信息的內容確認處理裝置100端所儲存的系統程序是否與主機200所儲存的系統程序 的版本相同(步驟S306)。若是,則主機200將不會執行后續的變更步驟。若否,則對應于圖 2的步驟S210,主機200可將第一程序傳送至處理裝置(步驟S308)。接著,對應于圖2的 步驟S214,主機200可將不同版本的系統程序傳送至處理裝置(步驟S310),用以致使處理 裝置以接收到的系統程序變更原始的系統程序。于本發明的另一實施例中,步驟S304與步 驟S306可合并在一起,S卩,主機200可將配對信息傳送至處理裝置的同時判斷兩端的系統 程序的版本是否相同。
[0039] 圖4是顯示根據本發明的第二實施例所述的系統程序變更方法流程圖。值得注意 的是,圖4所示的流程圖是由處理裝置100的角度描述。于本發明的第二實施例中,系統程 序的變更可于執行正規系統內編程(normal ISP)操作之前被觸發。首先,當處理裝置100 被供電時,根據存儲器裝置130內的硬件設定值,自第一存儲器分區開機(步驟S400)。舉例 而言,處理器110可讀取第一存儲器分區內所儲存的對應的開機程序,用以完成開機步驟。
[0040] 接著,處理器110可判斷是否須執行正規系統內編程,以變更第二存儲器分區內 所儲存的應用程序(步驟S402)。處理器110可通過一些相對的信息或指令判斷是否需執行 正規系統內編程。舉例而言,當使用者想要變更應用程序時,可將一主機耦接至處理器110。 如上述,主機可以是一電腦或者ISP工具。當輸入/輸出接口 140檢測到有元件連接時,可 發出對應的信息或指令至處理器110,用以通知處理器110。
[0041] 若無須執行正規系統內編程,則處理器110可通過軟件驅動一重開機程序,用以 自第二存儲器分區重新開機,以執行應用程序(步驟S420),致使處理裝置100根據應用程 序內所定義的方式運作,以提供既定的功能。若須執行正規系統內編程,則處理器110可將 系統程序(例如:ISP程序)的版本的相關信息通過輸入/輸出接口 140傳送至一主機(步驟 S404)。接著,處理器110可自主機接收一配對信息(步驟S406),配對信息可夾帶處理器110 的系統程序的一版本是否與主機端所儲存的一系統程序的一版本相同的相關信息。
[0042] 在接收到配對信息后,處理器110將確認系統程序的版本是否相同(步驟S408)。 若相同,則處理器110可執行正規系統內編程操作,以變更應用程序(步驟S418)。
[0043] 若系統程序的版本不同,則處理器110可自主機接收第一程序,并且將第一程序 儲存于第二存儲器分區中(步驟S410)。接著,處理器110可通過軟件驅動一重開機程序,用 以自第二存儲器分區重新開機,并且于重新開機后執行第一程序(步驟S412)。
[0044] 接著,處理器110可根據第一程序變更系統程序。處理器110可進一步自主機接 收不同版本的系統程序、并且將此版本的系統程序寫入第一存儲器分區,用以取代原先的 系統程序(步驟S414)。
[0045] 當系統程序被變更后,處理器110可通過軟件驅動一重開機程序,用以自第一存 儲器分區重新開機,以執行新的系統程序(步驟S416),之后處理器110可執行后續的正規 系統內編程操作,以變更應用程序(步驟S418)。最后,處理器110可通過軟件驅動一重開機 程序,用以自第二存儲器分區重新開機,以執行應用程序(步驟S420),致使處理裝置100根 據應用程序內所定義的方式運作,以提供既定的功能。
[0046] 圖5是顯示根據本發明的第二實施例所述的另一系統程序變更方法流程圖。值得 注意的是,圖5所示的流程圖是由主機200的角度描述。首先,對應于圖4的步驟S404,主 機200可接收處理裝置100的系統程序的版本的相關信息,并且設定配對信息的內容(步驟 S502)。主機200在接收到系統程序的版本的相關信息后,會與主機200所儲存的系統程序 的版本相比,用以確認兩者是否相同,以設定配對信息的內容。
[0047] 接著,主機200可將配對信息傳送至處理裝置(步驟S504)。接著,主機200可根 據配對信息的內容確認兩者的系統程序的版本是否相同(步驟S506),于本發明的另一實施 例中,步驟S504與步驟S506也可合并在一起。若兩者的系統程序的版本相同,則主機200 可不執行系統程序的變更步驟,而是執行正規系統內編程操作(步驟S508),例如,將另一應 用程序傳送至處理裝置100,用以致使處理裝置100變更應用程序。若否,則對應于圖4的 步驟S410,主機200可將第一程序傳送至處理裝置(步驟S510)。接著,對應于圖4的步驟 S414,主機200可將不同版本的系統程序傳送至處理裝置(步驟S512),用以致使處理裝置 以接收到的系統程序變更原始的系統程序。最后,再執行正規系統內編程操作(步驟S508), 例如,將另一應用程序傳送至處理裝置100,用以致使處理裝置100變更應用程序。
[0048] 本發明的上述實施例能夠以多種方式執行,例如使用硬件、軟件或其結合來執行。 本領域相關技術人員應了解執行上述功能的任何組件或組件的集合可被視為一個或多個 控制上述功能的處理器。此一個或多個處理器可以多種方式執行,例如通過指定硬件,或使 用微碼或軟件來編程的通用硬件來執行上述功能。
[0049] 權利要求書中用以修飾元件的"第一"、"第二"等序數詞的使用本身未暗示任何優 先權、優先次序、各元件的間的先后次序、或方法所執行的步驟的次序,而僅用作標識來區 分具有相同名稱(具有不同序數詞)的不同元件。
[0050] 本發明雖以實施例揭露如上,然其并非用以限定本發明的權利要求,本領域相關 技術人員,在不脫離本發明的權利要求,當可做些許的更動與潤飾,因此本發明的保護范圍 當視本申請專利權利要求書。
【權利要求】
1. 一種處理裝置,其特征在于,所述處理裝置包括: 一程序存儲器,包括至少一第一存儲器分區用以儲存一系統程序以及一第二存儲器分 區用以儲存一應用程序;以及 一處理器,耦接至所述程序存儲器,用以執行所述程序存儲器內所儲存的所述這些程 序,其中所述處理器執行所述應用程序以致使所述處理裝置提供至少一既定功能,所述處 理器執行所述系統程序以致使所述處理裝置變更所述應用程序;并且 當所述系統程序的版本必須被變更時,所述處理器更自一主機接收一第一程序、將所 述第一程序儲存于所述第二存儲器分區、驅動一重開機程序用以自所述第二存儲器分區重 新開機并于重新開機后執行所述第一程序、并且根據所述第一程序變更所述系統程序。
2. 根據權利要求1所述的處理裝置,其特征在于,所述第一存儲器分區所儲存的所述 系統程序為一第一版本系統程序,并且當執行所述第一程序時,所述處理器自所述主機接 收一第二版本系統程序、并且將所述第二版本系統程序寫入所述第一存儲器分區,用以取 代所述第一版本系統程序。
3. 根據權利要求2所述的處理裝置,其特征在于,所述處理器更驅動一重開機程序用 以自所述第一存儲器分區重新開機并于重新開機后執行所述第二版本系統程序,用以致使 所述處理裝置根據所述第二版本系統程序變更所述應用程序。
4. 根據權利要求1所述的處理裝置,其中所述處理器更自所述主機接收一配對信息, 所述配對信息夾帶所述系統程序的一版本是否與所述主機所儲存的一系統程序的一版本 相同的相關信息,并且當所述系統程序的所述版本并非與所述主機所儲存的所述系統程序 的所述版本相同時,所述系統程序必須被變更。
5. 根據權利要求1所述的處理裝置,其特征在于,當所述應用程序被執行時,所述處理 器不被允許編程所述程序存儲器的所述第一存儲器分區,并且當所述第一程序被執行時, 所述處理器被允許編程所述程序存儲器的所述第一存儲器分區。
6. -種系統程序變更方法,其特征在于,所述系統程序變更方法由一處理裝置的一處 理器執行,用以變更儲存于所述處理裝置的一存儲器的一第一存儲器分區的一系統程序, 其中所述處理裝置通過執行儲存于所述存儲器的一第二存儲器分區的一應用程序以提供 至少一既定功能,并且所述處理裝置通過執行所述系統程序以變更所述應用程序,所述方 法包括: 自一主機接收一第一程序; 將所述第一程序儲存于所述存儲器的所述第二存儲器分區; 驅動一重開機程序用以自所述第二存儲器分區重新開機;以及 于重新開機后執行所述第一程序,用以根據所述第一程序變更所述系統程序,其中通 過執行所述第一程序,所述處理器被允許編程所述存儲器的所述第一存儲器分區。
7. 根據權利要求6所述的系統程序變更方法,其特征在于,所述第一存儲器分區所儲 存的所述系統程序為一第一版本系統程序,所述方法更包括: 自所述主機接收一第二版本系統程序;以及 將所述第二版本系統程序寫入所述第一存儲器分區,用以取代所述第一版本系統程 序。
8. 根據權利要求7所述的系統程序變更方法,其特征在于,所述系統程序變更方法還 包括: 驅動一重開機程序用以自所述第一存儲器分區重新開機;以及 于重新開機后執行所述第二版本系統程序,用以根據所述第二版本系統程序變更所述 應用程序。
9. 根據權利要求6所述的系統程序變更方法,其特征在于,所述系統程序變更方法還 包括: 自所述主機接收一配對信息,其中所述配對信息夾帶所述系統程序的一版本是否為與 所述主機所儲存的一系統程序的一版本相同的相關信息;以及 當所述系統程序的所述版本并非與所述主機所儲存的所述系統程序的所述版本相同 時,自所述主機接收所述第一程序。
10. 根據權利要求6所述的系統程序變更方法,其特征在于,當儲存于所述存儲器的所 述第二存儲器分區的所述應用程序被執行時,所述處理器不被允許編程所述存儲器的所述 第一存儲器分區。
【文檔編號】G06F9/445GK104111845SQ201310421884
【公開日】2014年10月22日 申請日期:2013年9月16日 優先權日:2013年4月19日
【發明者】游原泉 申請人:新唐科技股份有限公司