Time of Update: 2018-12-03
uCOS作業系統移植分析一、OS_CPU.H檔案 1、處理器必須滿足以下要求: (1). 處理器的C編譯器能產生可重新進入代碼。 (2). 用C語言就可以開啟和關閉中斷。 (3). 處理器支援中斷,並且能產生定時中斷(通常在10至100Hz之間)。 (4). 處理器支援能夠容納一定量資料(可能是幾KB)的硬體堆棧。 (5.) 處理器有將堆棧指標和其它CPU寄存器讀出和儲存到堆棧或記憶體中的指令
Time of Update: 2018-12-03
(一)什麼是SAS SAS(Serial Attached SCSI)即串列SCSI技術,是一種磁碟串連技術,它綜合了並行SCSI和串列串連技術(如FC、SSA、IEEE1394等)的優勢,以串列通訊協議為協議基礎架構,採用SCSI-3擴充指令集,併兼容SATA裝置,是多層次的存放裝置連線協定棧。 說到SAS,自然會聯想到在儲存上廣泛使用的另外一種磁碟通道串連技術:FC(光纖通道),這裡將2種磁碟通道串連技術做一個簡單的對比。 FC 優點:基於Fabric Channel環路協
Time of Update: 2018-12-03
之前一直沒弄明白這兩條程式的意思,尤其是第二條:OSRdyGrp|=OSMapTbl[prio>>3];
Time of Update: 2018-12-03
#define BIT(x) (1<<(x))#define BIT0 (0x01)#define BIT1 (0x02)#define BIT2 (0x04)#define BIT3 (0x08)#define BIT4 (0x10)#define BIT5 (0x20)#define BIT6
Time of Update: 2018-12-03
對於一個程式員而言,在學校裡學不到多少工作中真正需要的知識,只有在工作中實踐積累並且看一些優秀的書籍,把實踐和理論結合起來才能夠更好的工作。尤其是在技術日益發展和變化的今天,每個開發人員更應該主動的看書去學習編程技巧並且改變編程方法,才能應付工作中各種複雜的項目。同時也可以在程式設計中更高效、彈性和準確的解決問題。下面列出了 11 本對開發人員很有益的書籍,大家可以從中選取感興趣的進行閱讀。 1. 《代碼大全》(Code
Time of Update: 2018-12-03
#include <stdio.h>#include <string.h>#include <ctype.h>#define MAXWORD 10#define NKEYS (sizeof keytab / sizeof keytab[0])struct key{ char *word; int count;}keytab[]={ {"auto",0}, {"break",0}, {"case",0}, {"char",0}, {"const",0},
Time of Update: 2018-12-03
1、編解碼檔案集(必須包含的檔案) * abort.c - BACnet Abort service encode/decode * bacerror.c - BACnet Error service encode/decode * reject.c - BACnet Reject service encode/decode * arf.c - AtomicReadFile service encode/decode * awf.c - AtomicWriteFil
Time of Update: 2018-12-03
基於mini2440的一個簡單移植程式led.c#include "config.h"#define LED1 (0<<5) //定義LED,GPB5#define TaskStkLength 64 //定義堆棧長度OS_STK TaskLEDStk[TaskStkLength]; //定義任務LED的堆棧void TaskLED(void *pdata); //聲明任務LEDint Main(void)
Time of Update: 2018-12-03
1、指向數組的指標與指標數組int (*p)[10]; // 指向數組的指標:p是一個指標,p指向一個由10個元素組成的數組int *p[10]// p先與[]結合,表示p是個數組,這個數組的每一個元素都是int*的指標。#include<stdio.h>#include<string.h>void main(void){void sort(char (*p)[6]);int i;char str[10][6];char (*p)[6];printf("input 10
Time of Update: 2018-12-03
對於.lds檔案,它定義了整個程式編譯之後的串連過程,決定了一個可執行程式的各個段的儲存位置。雖然現在我還沒怎麼用它,但感覺還是挺重要的,有必要瞭解一下。先看一下GNU官方網站上對.lds檔案形式的完整描述:SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { contents } >region :phdr =fill...}secname和contents是必須的,其他的都是可選的。下面挑幾個常用的看看:1
Time of Update: 2018-12-03
1、readlines函數:讀取輸入行int readlines(char *lineptr[], int maxlines){ int len, nlines; char *p, line[MAXLEN]; nlines = 0; while ((len = getline(line, MAXLINE)) > 0) if (nlines >= maxlines || (p = alloc(len)) == NULL)
Time of Update: 2018-12-03
設定檔/etc/syslog.conf是系統記錄檔的Deamon服務,是syslogd這個daemon的設定檔。syslogd負責產生Linux的記錄檔資訊,klogd負責產生linux核心資訊記錄檔。典型的syslog.conf檔案的內容如下:/etc/syslog.conf檔案# Log all kernel messages to the console.# Logging much else clutters up the screen.kern核心產生資訊的地方kern.*
Time of Update: 2018-12-03
1、getint函數:將輸入中的下一個整型數賦值給*pn#include<ctype.h>int getch(void);void ungetch(int);int getint(int *pn){ int c, sign; while (isspace(c = getch())) ; if (!isdigit(c) && c != EOF && c != '+' && c!= '-') {
Time of Update: 2018-12-03
#include <stdio.h>#include <string.h>#define MAXLINES 5000char *lineptr[MAXLINES];int readlines(char*lineptr[], int nlines);void writelines(char *lineptr[], int nlines);void qsort1(char*lineptr[],int left, int right, int (*comp)(void*,
Time of Update: 2018-12-03
1、printd函數:列印十進位數n/*用於解決低位先於高位產生,但是必須與此向反的秩序列印*/void printd(int n){ if (n < 0) putchar('-'); n = - n; if (n / 10) printd(n / 10); putchar(n%10 + '0');}2、快速排序qsort函數:以遞增順序對v[left] ...v[right]進行排序 void qsort(int v[], int
Time of Update: 2018-12-03
1、結構的基礎知識結構是一個一個或多個變數的集合,關鍵字struct引入結構聲明。例如:struct point { int x; int y;}A,B;point 是結構標記,A,B是變數表。它的初始化可以如下:struct point pt;struct point pt = {320,240};結構還可以嵌套.struct rect { struct pointpt1; struct pointpt2;};訪問的時候可以這樣:struct rect screen;
Time of Update: 2018-12-03
問題一:“請你自我介紹一下”思路:1、這是面試的必**目。2、介紹內容要與個人簡曆相一致。3、表述方式上盡量口語化。4、要切中要害,不談無關、無用的內容。5、條理要清晰,層次要分明。6、事先最好以文字的形式寫好背熟。問題二:“談談你的家庭情況”思路:1、 況對於瞭解應聘者的性格、觀念、心態等有一定的作用,這是招聘單位問該問題的主要原因。2、 簡單地羅列家庭人口。3、 宜強調溫馨和睦的家庭氛圍。4、 宜強調父母對自己查看更多教育的內容教育的重視。5、 宜強調各位家庭成員的良好狀況。6、
Time of Update: 2018-12-03
在驅動程式編寫過程中,很少會注意到IO Port和IO Mem的區別。雖然使用一些不符合規範的代碼可以達到最終目的,這是極其不推薦使用的。1. CPU是i386架構的情況在i386系列的處理中,記憶體和外部IO是獨立編址,也是獨立定址的。MEM的記憶體空間是32位可以定址到4G,IO空間是16位可以定址到64K。在Linux核心中,訪問外設上的IO Port必須通過IO Port的定址方式。而訪問IO
Time of Update: 2018-12-03
在Debian下安裝Oprofile重要:應該使linux核心選項支援在 .config 檔案中設定CONFIG_PROFILING=y和CONFIG_OPROFILE=y。重新編譯,燒寫。使用apt-get update && apt-get install oprofile oprofile-gui或手工安裝直接從網上下載oprofile-0.9.8。Oprofile預設需要這些庫的支援:
Time of Update: 2018-12-03
周末公司召開了一個工程師大會,在總結自身經驗教訓的同時,還外請了一些人來給我們做報告,其中就有一個Google 的測試經理。他用一個小時的時間儘可能詳盡地給我們介紹了一下 Google 的開發流程和特點,再一次加強了了 Google 在我心目中的形象:工程師的天堂。Q&A 環節中有一個同事問了一個問題,他說:“你以前也待過很多家公司,像華為等,你能說明一下為什麼只有 Google 產生了工程師文化嗎?”那位經理說他自己也不清楚,但給我們講了一個很有趣的小故事:Google