本文来源电子发烧友社区,作者:李先生, 帖子地址:https://bbs.elecfans.com/jishu_2286690_1_1.html
前言
编写代码
复制代码
导入代码到开发板
编译
运行
查看效果
总结
开发板运行了桌面系统自带编译环境,所以不需要交叉编译,开发起来比较方便。
前言
前提是已经了解应用程序的开发流程,见https://bbs.elecfans.com/jishu_2286643_1_1.html。
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- #include
- int main(int argc, char *argv[])
- {
- int fd = -1;
- int ret = -1;
- uint8_t *p_fb = 0;
- struct fb_fix_screeninfo finfo;
- struct fb_var_screeninfo vinfo;
- memset(&finfo,0,sizeof(finfo));
- memset(&vinfo,0,sizeof(vinfo));
- /* 打开设备 */
- fd = open(argv[1],O_RDWR);
- if(fd < 0)
- {
- fprintf(stderr,"open %s err, %sn",argv[1],strerror(errno));
- return -1;
- }
- /* 获取设备信息 */
- ret = ioctl(fd, FBIOGET_FSCREENINFO, &finfo);
- if(ret < 0)
- {
- fprintf(stderr,"ioctl finfo err, %sn",strerror(errno));
- close(fd);
- return -1;
- }
- ret = ioctl(fd, FBIOGET_VSCREENINFO, &vinfo);
- if(ret < 0)
- {
- fprintf(stderr,"ioctl vinfo err, %sn",strerror(errno));
- close(fd);
- return -1;
- }
- /* mmap 这里假设bits_per_pixel为32位, 所以p_fb定义为unsigned int *p_fb, 写buffer也是按照unsigned int 写, 实际应该根据bits_per_pixel大小进行读写 */
- unsigned long len = vinfo.xres_virtual* vinfo.yres_virtual * vinfo.bits_per_pixel / 8;
- p_fb = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
- if(p_fb == NULL)
- {
- fprintf(stderr,"mmap len %ld errn",len);
- close(fd);
- return -1;
- }
- fprintf(stderr,"x = %d y = %d bits = %d len = %ldn",vinfo.xres_virtual,vinfo.yres_virtual,vinfo.bits_per_pixel,len);
- volatile int times = 30;
- while(times--)
- {
- if(vinfo.bits_per_pixel == 16)
- {
- for(unsigned int i=0; i< len/2; )
- {
- *((uint16_t*)(p_fb + i)) = 0xF800;
- i+=2;
- }
- usleep(atoi(argv[2])*1000);
- for(unsigned int i=0; i< len/2;)
- {
- *((uint16_t*)(p_fb + i)) = 0x07E0;
- i+=2;
- }
- usleep(atoi(argv[2])*1000);
- for(unsigned int i=0; i< len/2;)
- {
- *((uint16_t*)(p_fb + i)) = 0x001F;
- i+=2;
- }
- usleep(atoi(argv[2])*1000);
- }
- else
- {
- for(unsigned int i=0; i< len/4; )
- {
- *((uint32_t*)(p_fb + i)) = 0xFF0000;
- i+=4;
- }
- usleep(atoi(argv[2])*1000);
- for(unsigned int i=0; i< len/4;)
- {
- *((uint32_t*)(p_fb + i)) = 0x00FF00;
- i+=4;
- }
- usleep(atoi(argv[2])*1000);
- for(unsigned int i=0; i< len/4;)
- {
- *((uint32_t*)(p_fb + i)) = 0x0000FF;
- i+=4;
- }
- usleep(atoi(argv[2])*1000);
- }
- }
- munmap(p_fb,len);
- close(fd);
- return 0;
- }
见https://bbs.elecfans.com/jishu_2286643_1_1.html,使用rz导入不再赘述。
gcc framebuffer.c -o framebuffer回车
关闭桌面系统,否则桌面系统在显示,framebufer无法显示。
输入sudo init 3回车 提示输入密码时输入starfive回车。
用鼠标键盘
输入用户名riscv
密码starfive登录
输入
sudo ./framebuffer /dev/fb 1000
提示输入密码时输入starfive回车。
开发板运行了桌面系统自带编译环境,所以不需要交叉编译,开发起来比较方便。
sudo init 3切换到命令行模式
sudo init 5切换到桌面模式
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
RISC-V
+关注
关注
41文章
1906浏览量
45074 -
赛昉科技
+关注
关注
3文章
126浏览量
14146
发布评论请先 登录
相关推荐
信用卡大小的 RISC-V 单板计算机介绍
信用卡大小的 RISC-V 单板计算机 —— Mars
Mars 由深圳市群芯闪耀科技有限公司(Milk-V)设计并推出,搭载赛昉科技
发表于 04-12 16:39
【昉·星光 2 高性能RISC-V单板计算机体验】为 Ubuntu 安装 Docker 及常用软件
【昉·星光 2 高性能RISC-V单板计算机体验】为 Ubuntu 安装 Docker 及常用软件
目的
为了更好的利用星光2,决定使用容器
发表于 02-21 17:54
【昉·星光 2 高性能RISC-V单板计算机体验】VisionFive2开箱+安装Ubuntu
【昉·星光 2 高性能RISC-V单板计算机体验】VisionFive2开箱+安装Ubuntu
前言
很感谢赛
发表于 02-21 17:49
【昉·星光 2 高性能RISC-V单板计算机体验】在昉·星光2上安装配置新编译的OpenWRT
本文是《【昉·星光 2 高性能RISC-V单板计算机体验】在昉·星光2上编译OpenWRT》的下
发表于 11-18 11:22
【昉·星光 2 高性能RISC-V单板计算机体验】+6手把手实战Linux控制小车
体验】4连接HDMI显示图形界面 - RISC-V技术论坛
【昉·星光 2 高性能RISC-V
发表于 10-12 10:05
【昉·星光 2 高性能RISC-V单板计算机体验】星光 2 功耗测评
星光 2是迄今最高性能单板机。 搭载高性能昉·惊鸿7110搭载64位高性能四核RISC-V CPU,2MB的二级缓存,工作频率最高可达1.5 GHz。
发表于 09-28 10:34
VisionFive 2单板计算机成功支持Docker容器解决方案
赛昉科技进一步获取。
关于 VisionFive 2
VisionFive 2 是全球第一款集成 3D GPU 的高性能量产 RISC-V 单板计算机,它优越的性能与合理的价格使其成为
发表于 09-08 11:45
【RISC-V + OpenCV 计算机视觉】用 VisionFive 2 昉·星光 2 进行物体识别
广泛应用于视频监控、自动驾驶等领域。
基于Debain操作系统和OpenCV框架,赛昉科技在VisionFive 2(昉·星光 2)RISC-V
发表于 09-08 11:42
【昉·星光 2 高性能RISC-V单板计算机体验】原创3 控制螺旋桨电路的升力大小
控制螺旋桨电路的升力大小,昉·星光 2 高性能RISC-V单板计算机反应敏捷,控制到位,值得上手!
GPIO接口也非常多,非常全。如下图:
谢谢!
发表于 08-31 16:45
【昉·星光 2 高性能RISC-V单板计算机体验】2更换Debian操作系统
接上两篇:【昉·星光 2 高性能RISC-V单板计算机体验】1初识赛昉科技StarFive -
发表于 08-31 00:03
【昉·星光 2 高性能RISC-V单板计算机体验】+1控制小车前进后退
感谢 电子发烧友论坛网
感谢 上海赛昉科技有限公司
下面用GPIO方式控制小车前进与后退,如视频所示。
GPIO接口控制效果不错,接下来再用这款“单板计算机”做一些项目。
发表于 08-30 20:15
【昉·星光 2 高性能RISC-V单板计算机体验】使用之一:星光 2开箱之硬件分析
昉·星光 2 是全球首款集成了GPU的高性能RISC-V单板计算机。与昉·星光1 相比( J
发表于 07-28 15:02
【RISC-V专题】昉·星光 2(VisionFive 2)RISC-V单板计算机免费试用
VisionFive 2是全球首款集成3D GPU的高性能量产RISC-V 单板计算机 。与上一代相比,VisionFive 2全面升级,在处理器工作频率、多媒体处理能力、可扩展性等方面都有显着提升
发表于 05-16 11:26
评论