Time of Update: 2018-12-04
寫在前面:三個周之前,我突然想寫一個遠程升級的程式。那個時候我只是大概知道IAP的意思是在應用編程,但怎麼編,我還一無所知。我給自己定下一個個階段目標,從最基礎的代碼一點點寫起,解決一個又一個的問題。三個周之後,我用自己設計的方法實驗了50多次,無一例升級失敗。三個周來,遇到了很多的不解、困惑,甚至是想放棄,但我現在想說的是:很多未知的困難會擋在我們面前,我們會感覺毫無頭緒甚至覺得毫無出路忍不住要放棄,但多堅持一下,那些困難不但能煙消雲散還能帶給我們進步。本設計是基於LPC2114和Keil
Time of Update: 2018-12-04
工作後從單片機轉成ARM,剛開始用ADS1.2編譯器,用了一段時間,因為我接手的項目的老程式正是用ADS編譯的,部門也大都在用.在學單片機的時候用的是keil c51編譯器,ads和這個編譯器在易用性上真是無法比較.後來漸漸知道keil已經被arm公司收購,現在keil
Time of Update: 2018-12-04
這個東西困擾了我幾天,關於優先順序問題確實是個惱人的東西,為了這個專門翻了C語言課本,得知所有一目運算子都是第二級優先順序結合性是從右至左那麼*string++應該就是*(string++),也就是先++,再*取值。但是讓我想不通的是先++後,指標指向了下一地址,那麼當前地址不久落開了嗎?後來再看C語言a++與++a時才突然頓悟:*string++是取出當前字元後將指標後移,因為a++:在使用a之後使a自加++a:在使用a之前使a自加看來自己的C語言還有很多待加強,看似簡單的問題,自己曾經看過很
Time of Update: 2018-12-04
位於:lwip/src/core/tcp.c原型: struct tcp_pcb * tcp_new (void)功能:常見一個TCP協議控制塊但並不把它放到任何TCP PCB列表,直到使用tcp_bind()函數綁定.代碼: /** * Creates a new TCP protocol control block but doesn't place it on * any of the TCP PCB lists. * The pcb is not put on any list
Time of Update: 2018-12-04
前言:一個月前在網站上填寫了一份TI的LM3S8962評估套件的免費申請,當時也沒有抱有多大希望。一個月之後,就在我已經將這件事忘記的時候,竟然意外的收到了這個從上海總庫郵寄到的評估套件。看到這裡面的資料都是英文的,就想在工作之餘將裡面的基礎文檔翻譯一下,僅供自己以後參考。(PS:收到套件後,我再次訪問了填寫申請單的網站,發現活動已經結束了) Stellaris@LM3S8962評估套件 Stellaris
Time of Update: 2018-12-04
位於: 位於:lwip-x.x.x/src/core/tcp.c原型: err_t tcp_bind(struct tcp_pcb *pcb, struct ip_addr *ipaddr, u16_t port)功能:綁定串連到一個本地連接埠號碼和IP地址.函數源碼:/** * Binds the connection to a local port number and IP address. If the * IP address is not given (i.e., ipaddr =
Time of Update: 2018-12-04
我不怕過光棍節,我怕我喜歡的人不過光棍節!就在剛剛,幾位好友都問明天該怎麼過?我就想到去年的明天,前年的明天,在我大學四年中的每個11月11,我是怎麼過的?還記得那年我們大一,睡在我對腳的小強便是在像今天這麼個日子的深夜結束了單身。似乎依稀記得,每年的11月11,都有群同樣不在乎的人樂呵呵的度過明天怎麼過,應該想今天/昨天/前天一樣,上班、吃飯、睡覺。 只是,不在怎麼樂呵..
Time of Update: 2018-12-04
在lwIP中,是通過結構體netif來描述一個硬體網路介面的,在單網卡中,這個結構體只有一個,多網卡中可有何網卡數目相同的netif結構體,它們構成一個資料鏈。下面的代碼選自netif.h,是netif結構體的代碼描述:/** Generic data structure used for all lwIP network interfaces. * The following fields should be filled in by the initialization *
Time of Update: 2018-12-04
在lwip-x.x.x/src/core/tcp.h中定義:#define tcp_listen(pcb) tcp_listen_with_backlog(pcb, TCP_DEFAULT_LISTEN_BACKLOG)所以, tcp_listen(pcb) 和tcp_listen_with_backlog(pcb, TCP_DEFAULT_LISTEN_BACKLOG)是一回事.
Time of Update: 2018-12-04
在電子電路中,去耦電容和旁路電容都是起到抗幹擾的作用,電容所處的位置不同,稱呼就不一樣了。對於同一個電路來說,旁路(bypass)電容是把輸入訊號中的高頻雜訊作為濾除對象,把前級攜帶的高頻雜波濾除,而去耦(decoupling)電容也稱退耦電容,是把輸出訊號的幹擾作為濾除對象。去耦電容用在放大電路中不需要交流的地方,用來消除自激,使放大器穩定工作。從電路來說,總是存在驅動的源和被驅動的負載。如果負載電容比較大,驅動電路要把電容充電、放電,才能完成訊號的跳變,在上升沿比較陡峭的時候,電流比較大,這
Time of Update: 2018-12-04
愚笨視窗綜合症有2種變現形式:接收方愚笨視窗綜合症和發送方愚笨視窗綜合症。考慮以下情形。當接收方的接收緩衝滿時,它會通知對方它的接收允許視窗為0,使發送方不要再繼續發送資料。這時接收應用程式從接收緩衝中讀入一個位元組,那麼就空出了一個位元組的空間。接收TCP馬上告知對方它的接收允許視窗為1。發送方因此發送1位元組的資料給接收方。這樣,每當接收應用程式讀取1位元組資料時都會觸發發送方發送1位元組資料。顯然每一個資料區段僅攜帶如此少的使用者資料是相當低效的。這就是接收方愚笨視窗綜合症。和接收方一樣,
Time of Update: 2018-12-04
keil的訊號函數用於類比和測試串列IO,類比IO,連接埠通訊等重複發生的外來事件。訊號函數以關鍵字signal開頭。在函數中必須調用twatch用於延時,不然keil會陷入死迴圈。twatch函數的參數表示要延時的CPU執行循環,比如twatch(1000000)表示一個訊號函數延時1000000個CPU周期。訊號函數受到如下約束:函數的傳回值類型必須為void。 函數最多隻能有8個參數。 訊號函數可以調用其他重定義函數和使用者函數。訊號函數之間不能相互調用。 訊號函數可以被使用者函數調用。
Time of Update: 2018-12-04
問題描述:使用keil C51編譯環境,帶字型檔液晶.發現有些漢字使用這樣語句無法顯示: uchar code coun_show1[]={"請輸入第一運算元"};其中的漢字"數"將不會顯示,而如果用簡體中文編碼代替以上漢字,如:uchar code
Time of Update: 2018-12-04
昨天在青島參加了周立功的筆試加面試,寫出來分享一下,我筆試考了第四,五十多分,進入了面試環節,但最後研發的只從通過筆試的七個人當中選了兩個,筆試第一和筆試第二。說一下過程。上午九點開始宣講會,周立功本人講自己產品,把能講的產品全講了一個遍,就是說自己產品如何如何的好,品質如何如何的高,如何如何的先進,一講就是將近兩個小時。然後報研發的四十多個人開始筆試,其他做銷售的就直接去面試了。筆試題主要考了數電(我做的是B卷),先是進位轉換,二進位、十進位、十六進位相互轉,然後問idata、xdata的地區
Time of Update: 2018-12-04
注:因為翻譯的內容圖片較多,CSDN部落格插入圖片較為繁瑣,所以我這裡只列出常值內容,完整內容請到以下網址下載:http://download.csdn.net/detail/zhzht19861011/3814851一.Stellaris LM3S9B96 開發套件Stellaris
Time of Update: 2018-12-04
這個錯誤也是好久前的了. 錯誤描述:在一個程式中,我想判斷一個寄存器與(&)上(1<<17)後是否等於0,代碼如下:
Time of Update: 2018-12-04
上個周在學群星的ARM lm3s1138,用上了他們的外設驅動庫.拋開外設驅動庫代碼中的層出不窮,弄的我腦袋大的#define xxx
Time of Update: 2018-12-04
幾乎所有的學生,現在都有這樣一個毛病: 總是說自己忙啊,累啊,沒有時間啊, 你們好好想一想,你們的時間都哪裡去了呢? 讓我來給你們算一下吧: 早晨8 點多,拎著些煎餅果子什麼的就來了 吃一吃東西,打點水,擦擦桌子,喝杯水, 開啟電腦,先瀏覽一下網頁,關注一下各個論壇的新文章 OK,現在 9 點多了,師兄弟幾個再交流一下亂七八糟的看法 10點了吧?整理整理,準備學習了,又來了個簡訊,一來二往 學不了一會,11 點了,哎喲,餓了,忍一忍,再看看網頁 11:30 了,OK,收拾一下,準備吃飯了。
Time of Update: 2018-12-04
面對lwIP協議棧龐大的代碼量和錯綜複雜的資料結構,除了對作者Adam的頂禮膜拜外,你是否有無從下手的感覺!但反過來想想,Adam大蝦辛苦十來年的成果,若是讓我等小菜民幾周給摸個滾瓜爛熟,這也太傷Adam的面子了。好在今天我們不看lwIp龐大的代碼與複雜的資料結構,我們只看如何移植,這麼一來,只需重寫兩個檔案即可。
Time of Update: 2018-12-04
使用mdk編程,假如有一個有用的函數你定義了但是沒有顯式的調用,mdk在預設下,將會把這個函數從整個程式總刪除掉,以節省ROM.比如,你在ROM的0x00002000處定位了一個函數,假設為void test(void),然後使用函數指標來調用它:void (*UserProgram)(); //函數指標UserProgram = (void (*)()) (0x00002000);//定位到指定的入口地址0x00002000(*UserProgram)();//調用test(