Time of Update: 2018-12-03
1.視頻現成的例子只有tq2440對應該的4.3寸LCD的驅動代碼. 但我手上是TQ2440 7.0寸LCD的屏,所以我對照7.0屏的手冊 ,改了一下參數可以用. 使用TQ2440, 驅動7.0寸屏的程式例子裡面的設定LCD參數也可以用, 有點想不明白先. 反正下面兩種設定都可以用. #include <linux/module.h>#include <linux/kernel.h>#include
Time of Update: 2018-12-03
很不錯的一個視頻。 http://www.100ask.net/index.html 第一期免費的。 http://dl.dbank.com/c03o1ebwlo 第二期280塊一套。http://dl.dbank.com/c06bbt0sxp 第三期180塊一套。 我購買了第二,第三期。
Time of Update: 2018-12-03
2.4核心註冊驅動要用:int register_chrdev (unsigned int major, const char *name, struct file_operations *fops);2.4核心登出驅動要用:int unregister_chrdev( unsigned int major, const char *name );2.4核心驅動註冊完後,要用以下代碼建立裝置檔案 static devfs_handle_t devfs_handle; devfs_
Time of Update: 2018-12-03
從linux核心2.6的某個版本之後,devfs不複存在,udev成為devfs的替代。相比devfs,udev有很多優勢,在此就不羅嗦了,提醒一點,udev是應用程式層的東東,不要試圖在核心的配置選項裡找到它;加入對udev的支援很簡單,以作者所寫的一個字元裝置驅動為例,在驅動初始化的代碼裡調用class_create為該裝置建立一個class,再為每個裝置調用 class_device_create建立對應的裝置。大致用法如下:struct class *myclass =
Time of Update: 2018-12-03
linux學習過程中遇到的問題問1:uboot在啟動linux的時候,只eth0:link down 後就沒反映是什麼問題?答1:原因是mount : RPC:Timed out, 因為在 /etc/init.d/rcS 裡面有 ifconfig eth0 192.168.16.16 (設定開發板的IP地址) ifconfig eth0 up (開啟開發板的網卡) mount -t nfs -o nolock
Time of Update: 2018-12-03
註:arm-linux-gdb的安裝路徑是/usr/local/arm/3.4.11、arm-linux-gdb的編譯安裝下載gdb-6.8.tar.bz2至工作目錄gdb源碼下載:http://ftp.gnu.org/gnu/gdb/命令如下:$tar -jxvf gdb-6.8.tar.bz2$cd gdb-6.8$./configure --target=arm-linux --enable-sim
Time of Update: 2018-12-03
Linux /etc/profile檔案的改變會涉及到系統的環境,也就是有關Linux環境變數的東西,學習Linux要瞭解Linux
Time of Update: 2018-12-03
白色:表示普通檔案藍色:表示目錄綠色:表示可執行檔紅色:表示壓縮檔淺藍色:連結檔案紅色閃爍:表示連結的檔案有問題黃色:表示裝置檔案灰色:表示其他檔案這是linux系統約定的預設顏色在環境變數$LS_COLORS上修改就行,想永久儲存就在~/.bashrc裡改預設的是:echo $LS_COLORSrs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:
Time of Update: 2018-12-03
1. 首先在文本登入介面,用你的根使用者帳號(root)和密碼登入。2. 然後掛載光碟機裝置,在命令列後鍵入“mount -t iso9660 /dev/cdrom /mnt”命令後斷行符號。3. 光碟機掛載成功後,用“cd /mnt”命令進入/mnt目錄下,再用“ls”命令顯示其下的內容。這時發現多了一個檔案:vmware-linux-tools.tar.gz,這就是VMware Tools的Linux安裝包。4. 然後再把該檔案拷貝到tmp目錄下,鍵入“cp
Time of Update: 2018-12-03
一般來說對於需要大量cpu計算的進程,當前端壓力越大時,CPU利用率越高。但對於I/O網路密集型的進程,即使請求很多,伺服器的CPU也不一定很到,這時的服務瓶頸一般是在磁碟的I/O上。比較長見的就是,大檔案頻繁讀寫的cpu開銷遠小於小檔案頻繁讀寫的開銷。因為在I/O輸送量一定時,小檔案的讀寫更加頻繁,需要更多的cpu來處理I/O的中斷。在Linux/Unix下,CPU利用率分為使用者態,系統態和空閑態,分別表示CPU處於使用者態執行的時間,系統核心執行的時間,和空閑系統進程執行的時間。平時所說的
Time of Update: 2018-12-03
輸入子系統是所有I/O裝置驅動的中介層,如何為下層眾多各式各樣的輸入裝置提供介面以及為上層提供了一個統一的介面?
Time of Update: 2018-12-03
核心原始碼arch\arm\plat-s3c24xx\s3c2410-clock.c/* standard clock definitions */static struct clk init_clocks_off[] = {{.name= "nand",.id= -1,.parent= &clk_h,.enable= s3c2410_clkcon_enable,.ctrlbit= S3C2410_CLKCON_NAND,}, {.name= "sdi",.id= -1,.parent=
Time of Update: 2018-12-03
驅動程式#include<linux/module.h>#include<linux/init.h>#include<linux/types.h>#include<linux/kdev_t.h>#include<linux/kernel.h> //可以使用ptintk函數#include<linux/fs.h>#include<linux/interrupt.h>
Time of Update: 2018-12-03
1.Uncompressing Linux................................................................ done, booting the kernel. 就不動了 解決:把console=/dev/ttySAC0 改成 console=ttySAC0 2. 啟動參數 initrd=0x30800000,0x20000,0x30800000表示ramdisk在RAM中的地址,0x20000表示ramdisk的大小 3.
Time of Update: 2018-12-03
1,SCHED_OTHER 分時調度策略,2,SCHED_FIFO即時調度策略,先到先服務3,SCHED_RR即時調度策略,時間片輪轉 即時進程將得到優先調用,即時進程根據即時優先順序決定調度權值,分時進程則通過nice和counter值決定權值,nice越小,counter越大,被調度的機率越大,也就是曾經使用了cpu最少的進程將會得到優先調度。SHCED_RR和SCHED_FIFO的不同:
Time of Update: 2018-12-03
1.一直以來調試核心移植和檔案系統都是用下面命令:#tftp 0x30008000 zimage#go 0x30008000 正常啟動,注意:上面的zimage調用已經燒寫進nand flash的檔案系統。 2.其實把上面的命令作為u-boot的某個特殊變臉個環境變數就可以實現“u-boot+linux+檔案系統”自動啟動了(1)先把zimage燒寫進nand flash#tftp 0x30008000 zimage#nand erase 0x40000 0x3c0000#nand write.
Time of Update: 2018-12-03
情境: 一段代碼,單進程多線程模式,除了main線程還有很多個子線程,裡面大量地使用了指標,代碼編譯沒有任何的warning和error;程式跑起來後一切正常,並和另外一個程式通過socket 網路通訊,也一切正常;所有的子線程退出也正常;所有類的解構函式析構的時候也正常。但是:就在main進程銷毀(或者通過exit(0))退出的時候,作業系統就提示以下錯誤:*** glibc detected *** ./fsvspsiu: corrupted double-linked list: 0
Time of Update: 2018-12-03
關鍵字:linux 廣播 255.255.255.255 sendto error: Network is unreachable 全網廣播情境: 今天調試linux 網路編程的廣播,當向255.255.255.255 的某個連接埠發送廣播包的時候,sendto 返回 -1,錯誤原因是:sendto error: Network is unreachable。解決方案: 1. 編程的解決方案: struct
Time of Update: 2018-12-03
昨天晚上郎師兄打電話說,我的結果檔案他開啟是亂碼,問我是不是字元編碼沒處理好。早晨早早的來到實驗室,請教了下同學,才知道linux shell 設定檔中預設的字元集編碼為UTF-8 。UTF-8是unicode的一種表達方式,gb2312是和unicode都是字元的編碼方式,所以說gb2312跟utf-8的概念應該不是一個層次上的。在LINUX上進行編碼轉換時,可以利用iconv命令實現,這是針對檔案的,即將指定檔案從一種編碼轉換為另一種編碼。
Time of Update: 2018-12-03
常見的兩種錯誤:1.在插入模組的時候出現如下問題: # insmod globalmem.ko insmod: error inserting 'globalmem.ko': -1 Device or resource busy ANSWER:主裝置號被佔用了,換另一個。 你把globalmem.c檔案裡面的宏定義那裡改為226或其他,然後再編譯就可以插入了!特別注意: 如果換了主裝置號以後,下面接著建立節點的時候也要該,否則出現下面錯誤:# mknod