Time of Update: 2018-12-03
可以直接在Finsh中運行自己定義的函數。官方有三種方式,我覺得第二種比較方便,其他就不介紹了。首先需要在application.c 中包含 finsh.h 標頭檔,然後在函數下方添加宏FINSH_FUNCTION_EXPORT(fun_with_arg, function with a argument);程式#include <rtthread.h>#include <finsh.h>static rt_thread_t tid = RT_NULL;static
Time of Update: 2018-12-03
在 Github 上面 Fork 別人的項目時,我們常常會遇到主專案有了更新,這個時候怎麼把主專案的更新合并到自己 Fork的版本裡面來呢? 今天突然有人問我這個問題,這裡就寫出來。 下面以 ruby-china 這個項目為例,假設我是使用者@tualatrix, 並且我有一個 ruby-china 的 fork版本在 這裡 ,而這個時候我在本地的版本是 tualatrix/ruby-china 這個# 我先吧 tualatrix Fork 的版本擷取到本地~/work $ git clone
Time of Update: 2018-12-03
和前面類似,使用宏,就可以將變數輸出至FinshFINSH_VAR_EXPORT(count, finsh_type_int, count variable for finsh);程式#include <rtthread.h>#include <finsh.h>static rt_thread_t tid = RT_NULL;static void thread_entry(void *parameter){ while (1) {
Time of Update: 2018-12-03
一、應用場合USB HID類是比較大的一個類,HID類裝置屬於人機互動操作的裝置。用於控制電腦操作的一些方面,如USB滑鼠,USB鍵盤,USB遊戲操縱杆,USB觸摸板,USB軌跡球、電話撥號裝置、VCR遙控等等裝置。另外,使用HID裝置的一個好處就是,作業系統內建了HID類的驅動程式,而使用者無需去開發很麻煩的驅動程式,只要直接使用API調用即可完成通訊。所以很多簡單的USB裝置,喜歡枚舉成HID裝置,這樣就可以不用安裝驅動而直接使用。二、USB
Time of Update: 2018-12-03
rt-thread的小記憶體管理是其預設的堆記憶體管理演算法。是採用靜態鏈表來實現的,源檔案為mem.c。1.資料結構===== struct heap_mem { /* magic and used flag */ rt_uint16_t magic; // 如果此記憶體塊被分配了,則置0x1ea0,以此標誌 // 此塊記憶體是正常分配出來的,而不是非法指標 rt_uint16_t used;
Time of Update: 2018-12-03
Time of Update: 2018-12-03
Chapter 3. Less Simple Things to do with builds在這章中,你將看到一些簡單的編譯配置例子。3.1 Specifying the name of the target (output) file=====當你使用 Program 來編譯工程,預設的輸出檔案的名字和源檔案同名。 Program('hello.c')如果想使用別的輸出名,只要在源檔案名稱的左側指定即可。Scons中要求目標檔案第一個出現,然後是源檔案。
Time of Update: 2018-12-03
發一個之前用在儀器產品上用的低紋波線性電源,比較適合造價不是第一考慮的產品設計。(原檔案名稱:p5.png) 因為產品體積和對電源穩定度的高要求我在常規線性穩壓電路前增設了一個預濾波電路,Q1,R14,C11組成了電容倍增器,實際相當於2法拉的電容濾波效果。實際在版測試Q1集電極處紋波2V左右,Q1發射極紋波2.543mV,電源電壓抑制比20log(2/0.002543) = 57.913dB。預濾波後通過5V線性穩壓器LM1086-5濾波穩壓,輸出電壓5.001V,紋波5.4uV
Time of Update: 2018-12-03
近一年都要和seam打交道了,所以環境肯定要搭建的,顯示下載seam架構,再是裝jboss伺服器,又下ant,按照reference的協助文檔來講,這些再加上配置好的jdk環境的話就可以跑出seam中內建n多個例子的。啟動jboss,ant seam-examples, 運行localhost,可是就是404啊,說明項目沒有部署到jboss server中,隨即開啟server/deploy,的確沒有xxx.ear,但明明提示的是build
Time of Update: 2018-12-03
/** * This function will change the previously allocated memory block. * * @param rmem pointer to memory allocated by rt_malloc * @param newsize the required new size * * @return the changed memory block address */void *rt_realloc(void *rmem,
Time of Update: 2018-12-03
前段時間看到一個新名詞——“電容倍乘器”(Capacitor
Time of Update: 2018-12-03
公元二零一二年四月一日。今天,世界末日還是沒有到來,彌留之際,於快畢業之時再作些許感慨!
Time of Update: 2018-12-03
為你的EditText設定一個NumberKeyListener,然後重寫getAcceptedChars()方法.editText.setKeyListener(new NumberKeyListener() { @Override protected char[] getAcceptedChars() { char[] numberChars = {'1','2','3','4','5','6','7','8','9'
Time of Update: 2018-12-03
RTT在設計時雖然採用了c語言,但使用了物件導向的思想。所有的線程、事件裝置等都是繼承自object,且採用鏈表的方式統一管理。。對象控制塊 /** * Base structure of Kernel object */ struct rt_object { char name[RT_NAME_MAX]; // 名稱 rt_uint8_t type; //
Time of Update: 2018-12-03
線性穩壓電源被廣泛應用於科研、電力電子、電鍍、廣播電視發射、通訊等領域, 是大專高等院校、實驗室等進行電子電路研究不可或缺的儀器裝置。但是傳統線性穩壓電源存在變壓器轉換效率低、穩壓晶片壓差大、濾波電路不夠完善等缺點, 時常出現輸出紋波大、效率低、發熱量大、間接地給系統增加熱雜訊等問題。在曆年的電子設計競賽中, 作品在比賽場地測試正常, 但在指定測試場地測評時, 電路突然燒毀或者效能指標達不到原先水平的現象時有發生,
Time of Update: 2018-12-03
@Override public View getView(int position, View convertView, ViewGroup parent) { final TextView v; if (convertView == null) { v = (TextView) mInflater.inflate(R.layout.action_list_item, parent, false); convertView = v; } else {
Time of Update: 2018-12-03
chapter 4. building and linking with libraries=====在大型的軟體中,用庫來管理十分方便,也可以為代碼複用省不少事。4.1 building libraries=====像 Program 函數一樣,只需要調用 Library 函數就能產生庫了。 Library('foo', ['f1.c', 'f2.c', 'f3.c']) % scons -Q cc -o f1.o -c f1.c cc -o f2.o
Time of Update: 2018-12-03
Finsh是調試的利器,它可以擷取系統運行時資訊,對任意寄存器和記憶體位址進行讀寫操作,還能直接調用系統函數訪問系統變數。要使用這個功能,需要開啟/* SECTION: Finsh, a C-Express shell */#define RT_USING_FINSH/* Using symbol table */#define FINSH_USING_SYMTAB#define FINSH_USING_DESCRIPTION並在startup.c 中添加啟動函數#ifdef RT_USING_
Time of Update: 2018-12-03
為了保持簡潔,本文省去了對部分細節的描述,例如weak型變數,和GOT等重定位類型。本文假設讀者瞭解ELF檔案格式。代碼在附件中。如果論壇不支援附件,可以發郵件給我要1 ELF檔案的裝載在ELF檔案中,使用section和program兩種結構描述檔案的內容。通常來說,ELF可重定位檔案採用section,ELF可執行檔使用program,可重連結檔案則兩種都用。裝載檔案,其實是一個很簡單的過程,通過section或者program中的type屬性判斷是否需要載入,然後通過offset屬性找到檔
Time of Update: 2018-12-03
訊號電平的一次反轉代表0,電平不變化表示1,並且在表示完一個碼元後,電壓不需回到0。如所示: 不歸零制編碼是效率最高的編碼