Andes D1088 在汽車 ADAS之應用

沈智明,資深經理,晶心科技股份有限公司  先進駕駛輔助系統(Advanced Driver Assistance Systems;ADAS)為現今 IT 產業發展之重要方向,是將來可以達到無人駕駛智慧車輛的技術進階過程。ADAS 的主要功能並不是控制汽車,而是為駕駛人提供車內的工作情況與車外環境變化等相關資訊進行分析,提供預先警告可能的危險狀況,讓駕駛人提早採取因應措施,避免交通意外發生。晶心科技的產品 D1088 具數位信號處理器(digital signal processor,DSP)指令,除了一般 CPU 指令外還多了 SIMD instructions 來加速ADAS 系統的演算,增加 ADAS 產品之性能,也因此獲得客戶的認同使用晶心科技 D1088 開發 ADAS 產品。使用 D1088 開發的 ADAS 產品包括盲點偵測(Blind-Spot Detection, BSD),前車碰撞警示(Forward-Collision…

Continue ReadingAndes D1088 在汽車 ADAS之應用

晶心平台運行具 OSC 的 FreeRTOS

沈智明,資深經理,晶心科技股份有限公司  晶心科技所設計 IP 的目的,是滿足客戶實際需求,提供低成本高效率的產品給客戶,讓客戶可以做出極具競爭力的SoC,達到客戶與晶心科技雙贏的目的, 本文介紹的具 OSC 的 FreeRTOS 產品,巧妙的與 AndesCore™結合,客戶導入產品後,具競爭力與實用性,本文的目的期望能夠讓更多的讀者清楚這個產品的特性與優勢進而使用此產品。  某些電子產品的應用是不同的時間需要運行不同的功能,這時需要大空間的ROM 與 RAM 來存放與運行時會用到的各式各樣的功能。因為 CPU 同時間只會運行一種功能。所以在務實與經濟的考量下可以使用 overlay 的方式來滿足此類型產品的需求, 不但大幅降低 RAM 空間的使用,也達成硬體成本降低,使得產品競爭力大大的提升。達成 overlay 的方式有兩種,純軟體 overlay 與硬體加速 overlay。純軟體的 overlay 不須增加硬體,但軟體工程師寫程式時需自己配置functions 擺放的位置,容易出錯;呼叫 functions…

Continue Reading晶心平台運行具 OSC 的 FreeRTOS

8051 與 AndesCore™ 的軟體差異與移植

1. 8051 與 AndesCore™  本文將介紹使用 8051 與 AndesCore™差異事項,並對兩種 CPU 系統相關事項做說明,後面再介紹從 8051 移植到 AndesCore™上注意事項,舉中斷向量表及異常處理函數的例子說明差異及移植,最後簡要介紹 AndesCore™在 MCU 應用的三款 CPU: N705,N801 和 N968A。2. 8051 與 AndesCore™ 常見差異事項 2.1. 位寬的差異   位元寬是指處理器一次執行指令的資料頻寬。8051 是 8 位寬的處理器, 而AndesCore™是…

Continue Reading8051 與 AndesCore™ 的軟體差異與移植

中斷處理固定優先權與可程式化優先權的差異性

王勝雯,經理,晶心科技股份有限公司  在現今 SOC 設計中,當周邊裝置(Periphral IP)想要和中央處理器(CPU)溝通時,最常使用的機制則是透過中斷(Interrupt)。由周邊裝置觸發中斷給中央處理器,當中央處理器接收到中斷後,則可判斷是由哪個周邊裝置觸發些中斷,接著處理相對應的中斷處理程式(ISR,Interrupt Service Routine),藉此達到彼此溝通的目的。但在同時間若有多個周邊裝置同時觸發中斷給中央處理器時,優先處理程序就成為了非常重要的一環。  Andes Core™在中斷優先權處理方面,共支援兩種模式:固定中斷優先權(Fixed Priority)和可程式化中斷優先權(Programmable Priority)。當配置在固定中斷優先權時,中斷處理優先權會依照中斷輸入腳位的順序來決定優先處理權,腳位數字越小其優先權越高(Low Interrupt Input Number High Priority),而配置在可程式化中斷優先權時,可將所有中斷輸入設置成四個層級的優先處理權,中央處理器在同時發生觸發中斷時會依照其設置的層級來決定優先處理權,若發生層級相同時則再以中斷輸入腳位的順序來決定優先處理權。  而在中央處理器進入中斷處理程序後,倘若希望能讓其他優先權較高的中斷觸發中央處理器進而處理該中斷處理程序,在軟體部分又應該怎麼設置來達到巢狀中斷的結構,我們將在本文介紹給使用者參考,期望能對使用者有所助益,也希望讀者不吝指教提供您寶貴的意見。1. 中斷優先權介紹  AndesCore™共支援兩種中斷優先權處理模式:固定優先權模式(Fixed Priority)與可程式化優先權模式(Programmable Priority)。以下的介紹將架構於AndesCore™ N801-S 這顆中央處理器。帶領使用者循序漸進地,了解這兩種中斷優先權處理模式的差異。1.1. Definition  AndesCore™ N801-S支援兩種中斷優先權模式,在硬體配置時就需要先決定中斷優先權的模式,如圖1的硬體配置視窗所示,首先,我們先介紹關於這兩種模式的定義。圖1.  硬體配置視窗1.1.1 Fixed Priority Mode  …

Continue Reading中斷處理固定優先權與可程式化優先權的差異性

Andes SAG 應用實例

  在嵌入式開發中,系統軟體設計特別是各種記憶體的規劃是必不可少的一個環節,它也直接體現在連結腳本的撰寫上。因連結腳本的語法相對複雜和篇幅較大,前期撰寫和後期維護對工程師來講難度都很大, 但對使用 AndesCore 做開發的工程師來講,Andes SAG 是一大福音,它提供簡單直觀的描述語言替代了複雜的 linker script。我們收到的回饋也證明,越來越多的工程師開始採用 Andes SAG 替代 linker script,之前我們有一篇技術文章對 SAG 的語法格式做了介紹並說明如何使用,本文將展示四個實際專案開發的例子,以幫助廣大開發者更好的熟悉和理解 Andes SAG,同時可以作為開發時的參考。1. 將函數和變數指定到特定位址  第一個例子是如何將函數和變數的位址指定到一個特定的位址上。有這樣要求的原因有很多,諸如 SOC 的執行位址空間不連續,或者需要高效使用某一塊效率很高的記憶體等情況。解法分為兩步:一,在 SAG 檔中添加自訂的 section, 將此 section 的 VMA 設定到指定地址;二,在…

Continue ReadingAndes SAG 應用實例

快速產生linker script 的Andes SAG 機制

    在嵌入式系統設計中,通常使用不同的記憶體,如 Flash、SRAM、SDRAM, 並位於不同的物理位址空間,怎樣更好地利用這些不同的記憶體並讓系統高效率地執行呢?通常這需要複雜的 linker script 來管理實作,而 Andes 提供了 SAG 語法(Scattering-And-Gathering),SAG 能夠將載入和執行時記憶體中的代碼和資料描述在一個SAG 格式的文字描述檔中,並通過linker script generator tool 將SAG 檔轉化為標準 GNU 的 linker script 檔,以供 link 程式時使用。採用 Andes SAG 機制,不僅可以幫助工程師清晰的描述記憶體的使用情況,更可以避免使用複雜的標準 linker…

Continue Reading快速產生linker script 的Andes SAG 機制

軟體 Overlay:程式編寫與除錯

賴歆雅,技術經理,晶心科技股份有限公司  近幾年來,SOC 為了支援更大的硬體資源,及更精確的演算法,很多應用中的韌體程式碼越來越大,但是售價卻要越來越便宜。各家廠商無不絞盡腦汁尋找降低成本的方法。  SRAM 在 SOC 上,是一個快速但單位面積較大的元件,而單位面積較大代表成本較昂貴。有一個降低成本的方法,是將程式碼放在較慢但單位面積較小的 flash 或 ROM 上,當系統需要執行裡面的某些程式碼時,才載入到記憶體裡執行。  如果用商店來比喻的話,有一個小店租在都市裡的黃金店面裡,小店的展示櫃很小,當客人想要看架上沒有的商品時,店員才從後面較大的倉庫裡,把商品拿出來放到展示櫃上。這裡的展示櫃就像 SRAM,昂貴但是有效率,倉庫就像 flash,便宜容積大但是存取較麻煩。  本文介紹的是軟體 overlay 的技術。除此之外,晶心科技也發展了硬體overlay 的技術,使得 overlay 執行更快,實作更為簡單。期望本文章能對使用者有所助益,也希望讀者不吝指教提供您寶貴的意見。1. 軟體 Overlay 技術介紹及實作  我們拿一個情境實例做為說明,比方說程式碼的大小為 210KB,RAM 只有 64KB,我們把 RAM 規劃成一格一格的大小,比方說每 4KB…

Continue Reading軟體 Overlay:程式編寫與除錯