原创 Linux C下的內存映射函數

前面有一篇文章 內存映射文件 給出了windows環境下,內存映射文件的例子。其實在Linux環境下,針對C語言也有相應的內存映射函數。使用內存映射函數可以提高文件讀寫的速度,在Linux環境下,利用mmap函數可以將指定的文件映射到內

原创 實習入職第一週

前段時間一直在忙着保研的事情,現在事情算是定下來了。作爲一名計算機專業的本科生,說來慚愧,還沒有真正到公司實習過,所以也不知道自己是幾斤幾兩。都說在公司裏成長地很快,所以我迫不及待地想找一份短期的實習,只做兩三個月的那種。前端時間也面了不

原创 Linux文件編程

在Linux下可以通過相應的文件I/O函數來完成對文件的操作,這些函數通常被稱爲不帶緩衝的I/O,因爲這些函數對文件的讀寫都是調用Linux內核的系統調用來實現的。基本的函數包括:open read write lseek(設置文件指針)

原创 Arduino自定義通信協議解析

上一篇文章給出了通信協議的設計。通信協議的格式如下: 協議首部 指令長度 控制指令 校驗和 “控制指令”設計成如下格式: 設備類型 設備號 端口號 比如說上位機發送如下的格式的數據:AA0305020

原创 IFTTT的數據架構

最近在調研一款神器——IFTTT,發現這個應用用了不少高端的技術,比如說:Docker、微服務架構、Kafka、Amazon雲服務、Elasticsearch、機器學習、數據挖掘等。下面開始介紹。 IFTTT簡介 各種各樣的互聯網服務如社

原创 Intel HEX文件解析

最近有一個需求就是爲Arduino開發板做一個基於藍牙的無線燒錄程序。目前的Arduino程序都是通過USB線連接到電腦的主機上,實際的傳輸過程是基於USB協議的,這個過程還是比較麻煩的。因爲每次的編譯完以後都需要通過一個USB線來完成傳

原创 利用lex和yacc做詞法、語法分析

最近在一直做一個東西。設計一種腳本語言,再寫一個翻譯器,將這種腳本語言翻譯成avr-gcc可以執行的C語言程序,再將得到的C語言程序利用avr-gcc編譯器編譯成Intel的hex文件格式,再寫一個類似bootloader的東西,將這個h

原创 Arduino IDE的編譯執行過程解讀

avr-gcc 1997年ATMEL公司的A先生和V先生推出了全新配置的8位精簡指令集微處理器(RISC-Reduced Instrction Sot CPU),起名爲AVR。AVR是一種指令內核的統稱,內部又分爲ATtiny、AT90

原创 Arduino通信協議設計

最近在一直在研究Arduino硬件平臺的東西,先從做一個簡單的東西入手,比如說,我通過Android端向Arduino硬件發送指令,控制電機的正轉、反轉。其中一個必不可少的問題就是這兩個端設備之間的通信問題。它們之間的通信可以通過藍牙模塊

原创 REST實戰——調用百度語音的雲服務

RESTful REST(REpresentation State Transfer)描述了一個架構樣式的網絡系統,比如說web應用程序。它首次出現在2000年Roy Thomas Fielding的博士論文中,他是 HTTP 規範的主要

原创 to be or not to be, that is a question...

很少發佈負能量的東西,沒地方寫,就放這裏吧。 時間過得夠快的,本科畢業一年了,研究生入學也一年了,今天心情不太好,想總結一下自己在這一年都幹了什麼。 爲時一年的雁棲湖集中教學馬上就要結束了,我在努力地回想,除了每天都在寫代碼,代碼量確

原创 博客已遷移至github pages

從武大本科畢業以後,就很久沒有寫過博客了,呵呵。不過定期總結的習慣依然沒有丟棄,只不過都沒有發佈出來。 當想再次提起筆在CSDN上寫總結的時候,博客已經搬家了。 很久以前就用Jekyll結合github pages搭建了一個靜態的博客,只

原创 Direct3D 地形

高程圖生成三角形網格 3D場景的模擬離不開地形,因此3D地形的模擬在3D程序設計中很重要。在3D場景中,地形的表面都是通過三角形網來表示,即通過高度圖(也稱影像圖)上的對應座標值來表示規則網格頂點座標值,從而形成規則的矩陣分佈三角網。具體

原创 DirectX天空球和天空盒子模型

在一些大型的3D遊戲中,有幾個必不可少的元素,比如說天空和大地,這些元素的存在可以增加3D場景的真實感。三維場景中天空和大地場景的模擬其實很簡單,這種場景跟古人所說的“天圓地方”有着異曲同工之妙。天空其實就是一個很大的容器,把整個世界都罩

原创 DirectX 3D Mesh類

Mesh類中定義了若干個3D模型,比如說立方體、圓柱、茶壺等。對於一些複雜的模型可以使用專業的軟件比如說3D Max等設計,再利用DirectX提供的插件,將複雜的3D模型保存爲.x文件。用Mesh類對象可以加載.x文件,並顯示.x文件中