嵌入式
文章平均质量分 60
嵌入式学习进展
Smileaaaaaaaaa
这个作者很懒,什么都没留下…
展开
-
[韦东山]嵌入式Linux应用开发 lecture7 输入系统应用编程
evdev_handler(最常用):把 input_event 结构体保存在内核 buffer ,支持多个 APP 同时访问。同步事件“0000 0000 0000 0000”(type=code=value=0)会分隔开独立的完整事件。③ 输入系统驱动层对应的驱动程序处理中断: 读取到数据,转换为标准的输入事件,向核心层汇报;查看设备节点对应的硬件信息:cat /proc/bus/input/devices。查看输入设备的设备节点:ls /dev/input/* -l。⑤ APP 对输入事件的处理;原创 2023-10-12 20:23:28 · 159 阅读 · 0 评论 -
[韦东山]嵌入式Linux应用开发 lecture6 freetype
freetype安装:先编译安装zlib,再编译安装libpng,最后编译安装freetype;tip:LCD显示的坐标系原点在左上角,调用freetype函数的坐标系原点在左下角;FT_Get_Char_Index:根据编码值获得glyph_index;FT_Load_Glyph:根据glyph_index获得glyph;③根据编码值通过charmap找到关键点(glyph);FT_Render_Glyph:渲染出位图;freetype功能:显示矢量字体;②使用数学曲线连接关键点;①确定字符的编码值;原创 2023-09-28 19:08:21 · 97 阅读 · 1 评论 -
[韦东山]嵌入式Linux应用开发 lecture5 字符显示
①UTF-16 LE(ff fe):两个字节(16b位),小字节序(权重小的在前)②UTF-16 BE(fe ff):两个字节(16b位),大字节序(权重大的在前)前16个字节表示区码,后16个字节表示位码,每个区有94个汉字;①ASCII:一个字节,七位表示(2^7=128)第八位为0;③UNICODE:三个字节,任意字符对应唯一数值;③UTF-8:变长编码,每个字节的高位带长度信息。显示中文字符:HZK16(16*16的点阵字库)②ANSI:两个字节,不同字符集对应不同显示;缺点:容量有限、容错低。原创 2023-09-28 19:07:30 · 142 阅读 · 1 评论 -
[韦东山]嵌入式Linux应用开发 lecture4 Framebuffer应用编程
假设更改LCD中位置为(x,y)的像素点的颜色值,则其内存位为:base+(y*x_res+x)*bpp/8。Linux通过Framebuffer驱动程序来控制LCD,其中保存着单帧图像的全部像素点颜色值。tip:需要使用open/ioctl/mmap函数,可通过man指令来查找头文件和函数原型;③应用程序通过mmap映射Framebuffer,在Framebuffer中写入数据;根据LCD分辨率、BPP分配Framebuffer;根据LCD的参数设置LCD控制器的时序、信号极性;原创 2023-09-20 20:08:57 · 185 阅读 · 1 评论 -
[韦东山]嵌入式Linux应用开发 lecture3 文件IO
查找命令:man 2 open//man read//man 2 write。内核态:根据传入参数触发sys_open/sys_read/sys_write。文件保存在块设备,会找到块设备驱动程序;普通文件:使用FAT32/EXT4/其他格式的文件系统驱动代码来打开文件;应用态:使用标准接口open/read/write。操作:f-往前翻 b-往后翻 q-退出。内核中的sys_open操作需要分辨文件类型。字符设备节点:根据主设备号在内核中找到驱动;原创 2023-09-20 20:07:57 · 77 阅读 · 1 评论 -
[韦东山]嵌入式Linux应用开发 lecture2 Makefile
dep_files := $(patsubst %,.%.d, $(objs)) //将objs中的文件xx变成.xx.d。第一次执行:gcc -c -o a.o a.c gcc -c -o b.o b.c gcc -o test a.o b.o。$(filter-out pattern...,text) 在text中取出不符合pattern格式的值。修改a.o后第二次执行:gcc -c -o a.o a.c gcc -o test a.o b.o。原创 2023-09-12 20:57:52 · 75 阅读 · 0 评论 -
[韦东山]嵌入式Linux应用开发 lecture1 GCC编译
编译:gcc -o test main.o -lsub -L dir (sub是libsub.so默认省略了lib前缀和.so后缀)使用多个.o文件生成动态库:gcc -shared -o libsub.so sub1.o sub2.o sub3.o...使用多个.o文件生成静态库:ar crs libsub.a sub1.o sub2.o sub3.o...编译:gcc -c -o test.o main.c sub.c。编译:gcc -o test main.c sub.c。原创 2023-09-06 21:06:08 · 50 阅读 · 0 评论