原创 bl跳轉指令使用錯誤導致編譯出現錯誤--relocation truncated to fit: R_ARM_PC24 init_irq

在用編寫JZ2440 LCD硬件實驗時在head.S中使用bl init_irq導致錯誤: bl 跳轉指令只能在+/- 32MB內跳轉: BL指令在編碼的時候,有24位用於表示相對地址的,(BL跳轉的範圍有限,這也是ldr給pc賦值跳轉的

原创 SourceInsight3.5打開工程提示不能寫,然後SI退出

在多個工程之間互相拷貝或閱讀代碼時,不想到相應的工程目錄下,而直接用SI打開該工程: 點擊SI程序,然後菜單欄的project->open project,選擇並雙擊以前建立的工程打開該工程,若此工程路徑包含中文的話,就會出現圖示提示

原创 UltraEdit在打開一個文件的時候,有時候可能會提示:希望轉換什麼什麼文件到DOS格式嗎?

ultraedit[UE]在編輯文本文件時,總是提示是否轉換爲DOS格式 那麼,到底爲什麼會出現這個提示的呢?網上搜索到一些答案 : 文件格式區別 我們先看看這三個傢伙有啥區別。很久以前,人們用老式的電傳打字機作爲輸入設備,

原创 虛擬機下的ubuntu dhcp自動連網(NAT)

1.虛擬機設置爲:自定義NAT方式(VMnet8) 2.ubuntu選擇dhcp自動獲得IP:    1)sudo vim /etc/network/interfaces      #開機自動激活eth3接口      auto eth

原创 字符設備程序實列二-查詢按鍵值,按鍵按下相應的LED燈亮,按鍵鬆開相應的LED燈滅

按照實例一,實現了從應用程序空間向內核空間傳遞數據,這一例實現從內核讀取按鍵值到應用空間,然後把剛剛保存在應用空間按鍵值寫到內核空間,內核空間按鍵值來操作對應的LED 驅動源碼:keys_leds.c 驅動源碼Makefile 測試源碼:

原创 嵌入式應用/驅動開發網絡環境設置-使用NFS網絡文件系統掛載根文件系統

本文使用的是主機的有線網卡,使得windows,vmvare上的ubuntu,開發板三者使用橋接互聯,需要三者處於同一網段 比如軟件設置:  windows爲固定IP 192.168.1.5   ubuntu爲固定IP 192.168.1

原创 RGB碼顯示顏色->RGB顏色查詢對照表

由RGB碼顯示顏色網址 http://rgb.phpddt.com/

原创 linux內核結構體初始化時出現的.owner = THIS_MODULE

.owner = THIS_MODULE爲什麼加“點”的原因 多次看書、編程時又看到了對結構體這種定義的方法,如:  struct file_operations scull_fops = {  .owner = THIS_MODUL

原创 ubuntu設置

操作均爲root用戶: 1.ll命令設置 /root/.bashrc  爲root登陸及打開新shell時讀取用戶變量設置文件 1) 編輯bashrc文件 root@book-desktop:~# vim ./.bashrc  # so

原创 異常處理體系結構

在裸板程序中,按鍵中斷的head.S如下: @****************************************************************************** @ File:head.S @

原创 字符設備程序實列一

1用戶空間無傳值給內核空間 本程序網絡根文件系統位於:/work/nfs_root/xyc_first_fs/ 模塊文件位於: /work/xyc_drivers_and_test 模塊源文件:first_drv.c 模塊文件:firs

原创 chrome插件使用

地址欄輸入:chrome://plugins/,需要開啓的插件始終啓用打√

原创 source insight支持.S的彙編文件和禁止for if等下一行縮進

用source insight看blob以及內核中的代碼,發現即使全局搜索,也找不到定義中後綴爲.S的函數,而明明在*.S中用匯編定義了該函數的。去網上查了一下,發現原因是*.S文件並沒有添加到改工程中來。 爲了用source ins

原创 可變函數定義及使用

關鍵詞: stdarg.h頭文件 va_list va_start va_arg va_end 1.定義可變參數函數 #include<stdarg.h> 返回類型 函數名(參數類型1  參數1, 參數類型2   參數2, ...) 例

原创 指針函數用法,參考u-boot1.1.6

function_pointer.c #include <stdio.h> typedef int (init_fnc_t)(void);//1 int printf1(void); int printf2(void); int pri