Time of Update: 2018-12-06
轉自:http://zhedahht.blog.163.com/blog/static/25411174201063105120425/ 題目:輸入一個字串,輸出該字串中對稱的子字串的最大長度。比如輸入字串“google”,由於該字串裡最長的對稱子字串是“goog”,因此輸出4。 分析:可能很多人都寫過判斷一個字串是不是對稱的函數,這個題目可以看成是該函數的加強版。
Time of Update: 2018-12-06
1. 嵌入式系統基本模型2. RTOS設計原則 採用各種演算法和策略,始終保持系統行為的可預測性。即在任何情況下,在系統啟動並執行任何時刻,OS的資源配置策略都能為爭奪資源(包括CPU、記憶體、網路頻寬等)的多個即時任務合理地分配資源,使每個即時任務的即時性要求都能得到滿足。3. GPOS與RTOSGPOS:注重每次執行的平均回應時間,而不是某次特定執行的回應時間。RTOS:除滿足應用功能需求外,還要滿足即時性要求,始終保證系統行為的可預測性(predictability)。
Time of Update: 2018-12-06
1、體繫結構 支援多核處理器的OS可能有幾種結構:主從結構、粗加鎖方式、細加鎖方式。 (1)主從結構:修改一個OS核心使其支援多處理器系統的最簡單的方法,是將整個OS視為一個不可分割的整體,並限定所有核心模式的操作均運行於同一個處理器(即主處理器)上,而另一個處理器(即從處理器)只用來執行使用者模式的操作,這樣得到的軟體結構就不再是對稱的。
Time of Update: 2018-12-06
記得以前寫過一片類似的隨筆,介紹在Win7下安裝使用Altera套件。當時,我就提到:QuartusII在Win7下可以正常安裝和使用,但NiosII SBTE在編譯工程時出現了一些錯誤。上網搜過解決方案,但一直沒整好,後來還是換回XP,這個問題就不了了之了... 前幾天無意中又想起了這個問題,於是就繼續搜尋解決辦法。這回,上天沒有讓我失望... NiosII SBTE在Win7下的編譯錯誤,應該是Cygwin相容性問題,需要修改一些編譯工具的運行模式。
Time of Update: 2018-12-06
1、關於OSStartHighRdy(): OSStart()用以啟動OS,將CPU控制權交給OS,並選擇當前系統中最高優先順序的就緒任務執行(OS第一次執行任務);OSStartHighRdy()用以“恢複”第一個被執行的任務的上下文。 問:在任務第一次被調度執行前,任務棧中存有任務的上下文資訊嗎?
Time of Update: 2018-12-06
嵌入式微處理器 微處理器主要由3大部分構成: 1、控制單元:負責取指、解碼和取數等基本操作,並發送主要的控制指令,其中包括兩個重要的寄存器:PC 和 IR; 2、算數邏輯單位:分為兩部分,算術運算單元和邏輯運算單元; 3、寄存器:儲存暫時性的資料。微處理器體繫結構 1、馮諾依曼(Von
Time of Update: 2018-12-06
轉自:http://zhedahht.blog.163.com/blog/static/254111742007376431815/
Time of Update: 2018-12-06
1. NiosII系統的執行過程 區分下面幾種情況下,NiosII系統的執行流程: (1) FPGA(其中包含NiosII系統)上電後的執行過程; (2) NiosII複位(僅從Flash中裝載NiosII程式,不用配置FPGA); (3) NiosII複位(從RAM中執行複位子程式,不用再次裝載程式); 2. NiosII複位地址 vs 程式入口地址 generated.x中,MEMORY定義的邏輯段sdram_UNUSED:
Time of Update: 2018-12-06
轉自:http://zhedahht.blog.163.com/blog/static/2541117420079237185699/ 題目:輸入一個鏈表的頭結點,從尾到頭反過來輸出每個結點的值。鏈表結點定義如下:struct ListNode { int m_nKey; ListNode* m_pNext;}; 分析:這是一道很有意思的面試題。該題以及它的變體經常出現在各大公司的面試、筆試題中。
Time of Update: 2018-12-06
轉自:http://zhedahht.blog.163.com/blog/static/254111742009101524946359/ 題目:把n個骰子扔在地上,所有骰子朝上一面的點數之和為S。輸入n,列印出S的所有可能的值出現的機率。 分析:玩過麻將的都知道,骰子一共6個面,每個面上都有一個點數,對應的數字是1到 6之間的一個數字。所以,n個骰子的點數和的最小值為n,最大值為6n。因此,一個直觀的思路就是定義一個長度為6n-n的數組,和為S的點數出現的次數儲存到數組第S-
Time of Update: 2018-12-06
轉自:http://zhedahht.blog.163.com/blog/static/254111742009101563242535/ 題目:實現函數double Power(double base, int exponent),求base的exponent次方。不需要考慮溢出。 分析:這是一道看起來很簡單的問題。可能有不少的人在看到題目後30秒寫出如下的代碼:double Power(double base, int exponent){double result = 1
Time of Update: 2018-12-06
轉自:http://zhedahht.blog.163.com/blog/static/25411174200732711051101/ 題目:輸入一個正數n,輸出所有和為n連續正數序列。 例如輸入15,由於1+2+3+4+5=4+5+6=7+8=15,所以輸出3個連續序列1-5、4-6和7-8。 分析:這是網易的一道面試題。 這道題和本面試題系列的第10題有些類似。我們用兩個數small和big分別表示序列的最小值和最大值。首先把small初始化為1,big初始化為2
Time of Update: 2018-12-06
http://zhedahht.blog.163.com/blog/static/2541117420116135376632/ 題目:在數組中,數字減去它右邊的數字得到一個數對之差,求所有數對之差的最大值,如數組{2, 4, 1, 16, 7, 5, 11, 9}中,數對之差的最大值是11,是16減去5的結果。
Time of Update: 2018-12-06
你是否遇到 Ubuntu 上 gnome 右鍵開啟檔案裡亂雜的程式名而煩惱?你是否遇到過卸載的後程式竟在右鍵開啟檔案裡發現的問題? 方法一:直接在Ubuntu終端輸入命令alacarte,可以任意增、改、隱藏、顯示菜單,但無法刪除菜單,即使擁有root許可權。 方法二:注意幾個目錄和檔案: /usr/share/applications/desktop檔案 /usr/share/applications/mimeinfo.cache檔案
Time of Update: 2018-12-06
轉自:http://zhedahht.blog.163.com/blog/static/2541117420105146828433/ 題目:設計一個類,我們只能產生該類的一個執行個體。 分析:只能產生一個執行個體的類是實現了Singleton模式的類型。
Time of Update: 2018-12-06
Time of Update: 2018-12-06
一塊乙太網路網卡包括OSI(開方系統互聯)模型的兩個層。物理層和資料連結層。物理層定義了資料傳送與接收所需要的電與光訊號、線路狀態、時鐘基準、資料編碼和電路等,並向資料連結層裝置提供標準介面。資料連結層則提供定址機構、資料幀的構建、資料差錯檢查、傳送控制、向網路層提供標準的資料介面等功能。1.網卡的基本結構 乙太網路卡中資料連結層的晶片一般簡稱之為MAC控制器,物理層的晶片我們簡稱之為PHY。許多網卡的晶片把MAC和PHY的功能做到了一顆晶片中,比如Intel 82559網卡的和3
Time of Update: 2018-12-06
1. NiosII SBTE Build Project過程分析 NiosII GNU C編譯工具: (1)nios2-elf-gcc (2)nios2-elf-ar (3)nios2-elf-g++ (4)nios2-elf-insert (5)nios2-elf-objdump Prj_Name:Prj_*** Prj_BSP_Name:Prj_***_bsp 點擊“Build Project”,出現如下編譯提示資訊: make
Time of Update: 2018-12-06
主要包含在C源檔案OS_CORE.C中。1. uC/OS-II任務調度(1) uC/OS-II調度演算法 uC/OS-II採用基於優先順序的調度演算法,總是選擇當前處於就緒狀態的優先順序最高的任務進行調度。uC/OS-II是可搶佔性的強即時性OS,在完成中斷後允許進行新的任務調度。 uC/OS-II有兩種調度方式:任務級任務調度、中斷級任務調度。(2) 任務就緒表 INT8U const OSUnMapTbl[256] = {…}; OS_EXT INT8
Time of Update: 2018-12-06
1. uC/OS-II檔案結構2. uC/OS-II組成部分 uC/OS-II大致可以分成系統核心(包含任務調度)、任務管理、時間管理、多任務同步與通訊、記憶體管理、CPU移植等部分。 (1) 核心部分(OSCore.c) :uC/OS-II處理核心,包括初始化、啟動、中斷管理、時鐘中斷、任務調度及事件處理等用於系統基本維持的函數。 (2) 任務管理(OSTask.c) :包含與任務操作密切相關的函數,包括任務建立、刪除、掛起及恢複等,uC/OS II以任務為基本單位進行調度。