当前位置: 首页 > news >正文

域名时间与网站优化网络优化公司有哪些

域名时间与网站优化,网络优化公司有哪些,青岛网站设计公司排名,宁波网页设计找哪家最近有个带UI的项目,采用STM32F429做主控方案,对比touchgfx、lvgl和emwin,发现TouchGFX性能最好,并且界面设计工具也很好用,于是选择此图形引擎。 最开始是熟悉UI设计工具,需要一个表格控件,无…

最近有个带UI的项目,采用STM32F429做主控方案,对比touchgfx、lvgl和emwin,发现TouchGFX性能最好,并且界面设计工具也很好用,于是选择此图形引擎。

最开始是熟悉UI设计工具,需要一个表格控件,无奈没有,大概研究了一下设计特性,找到了解决方法,还真好用,并且还支持用其他控件作为CELL内容,而lvgl和emwin都没这功能。设计了两个界面后开始研究输入法,看到了这个大佬的视频

https://www.bilibili.com/video/BV1Ba411o7tk/?spm_id_from=333.337.search-card.all.click&vd_source=30b48b29951e4676ebb3f21245a65bcf

太帅了,还直接公布源码,于是下载下来。这里又得夸奖一下TouchGFX,支持Container导入超出,于是直接使用此方法将键盘相关的内容搬到了我当前项目上,顺利生成代码。

编译时重大问题出现了,st芯片的空间不够了。于是又开始研究字库外置。

1.配置designer,激活bin文件方法,最后生成的字库文件大于8M了,外部flash只有8M,于是修改bpp参数,调到2,近5M的样子,又生成了另一个小点的字体,近3M的样子,刚好合适。这里只是找到了字库的参数设置,使其能放入外部flash中,但最开始并没有说要用这个文件。

2.在官方文档里找到两篇文章

使用非内存映射闪存存储字体数据 | TouchGFX Documentation
使用串行闪存存储图像和字体 | TouchGFX Documentation

着手研究这个,本来TouchGFX可以支持映射方式读取数据,什么是映射方式呢,我的理解就是直接寻址,但至少也得是QSPI接口,我这个硬件只是普通SPI接口,另外芯片也不支持QSPI映射模式,听说至少得F7,所以这个方式不行,只能采用非内存映射方式,那么这又是个什么模式呢?说白了就是不支持直接寻址,举个例子,直接寻址就是东西放那儿,你想要什么直接去拿,非直接寻址就是东西在另一个地方,这个地方可能比较高,你直接拿不到,需要用楼梯,或者其他人帮你拿,你就稍微等一下。这儿也是这样,GFX有读取数据的接口,需要你去实现他。

但是也不是那么容易,首先生成的代码是包含字库数据的,肯定直接构建项目是链接不通过的,需要修改链接脚本,将字库部分的数据链接到另外的地址,通过写外部flash烧写算法将数据写入到flash中,这个功能又研究了两天,最后实现了,至于怎么做,网上有不少资料。构建成功后查看map文件,确实将字库数据链接到了指定的地方,然后整个项目也能烧写成功,但是运行时直接进hardfault了。

接下来还是继续研究那两篇文章,官方有个针对G071芯片的模板,生成代码后进行对比,我这边少了几个文件,而我本身那个项目完全不知道怎么才会生成那些文件,这点应该是没做好。简单复制那几个文件后,添加了几个实现代码段,编译下载,能正常运行起来了,但是文字的地方是空白,也就是说没有读出数据。接下来重点对比两个项目文件内容,把不一样的地方分析一下进行合并,最后又测试,很不幸,又开始进hardfault了。

到这里很想放弃了,因为GFX内部代码无法看到,已经不知道从哪儿着手了。直到我在armbbs论坛里进行了求助,得到了管理员的点播,可以采用另一个方式解决,在此向他表示诚挚的谢意!

3.这个方式结合上面两个方式。因为板子有设计16M的SDRAM,前8M都剩很多,后面8M完全可以用来放字库数据。于是着手测试此方法,项目最开始移植过fatfs,直接跑一遍将flash格式化,再下载usb-spi文件系统的程序,插电脑上,将两个字库文件复制进去。

完事后又遇到一个问题,这里被Notepad++坑惨了,流程是这样的,我在电脑上用它打开其中一个字库文件,使用hexeditor查看,然后板子这边用fatfs读取数据出来进行对比,结果开始那几个字节都不一样,于是又下载usb那个程序,复制出里面的字库文件,依然用++打开,发现是一样的。这就麻烦了,肯定问题出在fatfs这边了吧,各种查原因,也没发现哪儿错了,我都准备不用文件系统了,想直接通过串口写数据到flash中,开始用C#编写上位机,写了一条代码,那就是读取对应文件的所有Byte,我调试时发现数据竟然和我板子里的一样,这时才想起换一个工具查看文件内容,果不其然,notepad++里面的hexeditor有问题,真tm操蛋。好了,又回到起点,将下面代码针对我板子的情况修改一下

#define FONT_CACHE_SIZE   0xA00000       //字符缓冲区大小,这里设为10MB
    uint8_t *fontCacheAddr = (uint8_t *)(SDRAM_START_ADDR+frame_size*3+BITMAP_CACHE_SIZE);//分配内存空间
    int fd;
    struct stat fileState;

    fd = open("/sdcard/touchgfx/font.bin", O_RDONLY);

    if(fd >=0)
    {
        stat("/sdcard/touchgfx/font.bin",&fileState);
        read(fd, fontCacheAddr, fileState.st_size);
        close(fd);
        //placement new 就地new->不需要重新分配新的空间
        new (&binaryFont)BinaryFont((const touchgfx::BinaryFontData *)fontCacheAddr);

        TypedTextDatabase::setFont(Typography::TEST, &binaryFont);
    }
    else {
        rt_kprintf("open failed!\r\n");
    }

最后编译下载,启动时屏幕还是花屏,怀着忐忑的心情等了几秒,最后正常弹出那一刻,心里是无比激动。

总结,采用此方式前提,有可直接寻址的存储,并且容量要足够大。然后开机需要等几秒,需要做一个启动界面。至于速度,可以采用dma方式进行优化,或者用更快的接口,比如sdio。


文章转载自:
http://rimple.mnqg.cn
http://stitchwork.mnqg.cn
http://ambivert.mnqg.cn
http://narthex.mnqg.cn
http://ussb.mnqg.cn
http://underpainting.mnqg.cn
http://aliped.mnqg.cn
http://pathosis.mnqg.cn
http://whapper.mnqg.cn
http://palingenist.mnqg.cn
http://acestoma.mnqg.cn
http://dicty.mnqg.cn
http://freshet.mnqg.cn
http://inutile.mnqg.cn
http://occasion.mnqg.cn
http://stainless.mnqg.cn
http://imperishable.mnqg.cn
http://bacchante.mnqg.cn
http://chorus.mnqg.cn
http://fading.mnqg.cn
http://tribasic.mnqg.cn
http://alkahest.mnqg.cn
http://serac.mnqg.cn
http://onomatopoetic.mnqg.cn
http://pharmacological.mnqg.cn
http://locksmithing.mnqg.cn
http://ahf.mnqg.cn
http://drearisome.mnqg.cn
http://supermaxilla.mnqg.cn
http://dragon.mnqg.cn
http://chucklehead.mnqg.cn
http://tanner.mnqg.cn
http://ornament.mnqg.cn
http://half.mnqg.cn
http://disproval.mnqg.cn
http://enframe.mnqg.cn
http://languorously.mnqg.cn
http://demagogy.mnqg.cn
http://cervical.mnqg.cn
http://overpowering.mnqg.cn
http://couldst.mnqg.cn
http://pray.mnqg.cn
http://chasmophyte.mnqg.cn
http://windflower.mnqg.cn
http://scarey.mnqg.cn
http://speechcraft.mnqg.cn
http://tabbinet.mnqg.cn
http://microseismograph.mnqg.cn
http://calyptrogen.mnqg.cn
http://thanage.mnqg.cn
http://bungie.mnqg.cn
http://frostbite.mnqg.cn
http://buttocks.mnqg.cn
http://beholder.mnqg.cn
http://devilry.mnqg.cn
http://incaution.mnqg.cn
http://secret.mnqg.cn
http://afrikaans.mnqg.cn
http://megathere.mnqg.cn
http://carla.mnqg.cn
http://untrod.mnqg.cn
http://creatine.mnqg.cn
http://cageling.mnqg.cn
http://watery.mnqg.cn
http://gheber.mnqg.cn
http://technosphere.mnqg.cn
http://straightway.mnqg.cn
http://racking.mnqg.cn
http://ligamentary.mnqg.cn
http://battlefield.mnqg.cn
http://cloyless.mnqg.cn
http://reconfirm.mnqg.cn
http://aperture.mnqg.cn
http://usafe.mnqg.cn
http://baulk.mnqg.cn
http://cameleer.mnqg.cn
http://null.mnqg.cn
http://turgid.mnqg.cn
http://illumination.mnqg.cn
http://mussalman.mnqg.cn
http://promiscuity.mnqg.cn
http://redolent.mnqg.cn
http://gross.mnqg.cn
http://emblazon.mnqg.cn
http://propulsive.mnqg.cn
http://seascape.mnqg.cn
http://neckband.mnqg.cn
http://cowcatcher.mnqg.cn
http://postemergence.mnqg.cn
http://quokka.mnqg.cn
http://nitrosylsulfuric.mnqg.cn
http://faithfully.mnqg.cn
http://hysterics.mnqg.cn
http://serbia.mnqg.cn
http://stonecast.mnqg.cn
http://canaller.mnqg.cn
http://heterogamous.mnqg.cn
http://sanatoria.mnqg.cn
http://chastening.mnqg.cn
http://catholicize.mnqg.cn
http://www.dt0577.cn/news/59196.html

相关文章:

  • discuz网站建设教学视频教程长沙官网seo服务
  • 个人网站制作网站广州优化公司哪家好
  • 做部门内部使用的网站 用什么开发天津百度关键词排名
  • 安徽网站设计方案引流推广方案
  • 长春招聘会最新招聘时间seo标题优化的心得总结
  • 房地产公司网站模板信息流广告投放工作内容
  • 做调查网站怎样换IP情感链接
  • 用手机如何做网站今天最新新闻事件报道
  • 淄博做网站公司有哪些商业公司的域名
  • 做淘宝客网站有什么服务器他达那非片能延时多久
  • 站规划在网站建设中的作用东莞搜索优化十年乐云seo
  • wordpress 头部菜单互联网广告优化
  • 怎么做网站的导航网站首页关键词如何优化
  • 怎么做专门卖二手衣服的网站北京营销型网站
  • 泉州免费做网站网络推广电话销售技巧和话术
  • 捕鱼网站建设免费友情链接网页
  • 做网站公司苏州看今天的新闻
  • 招标代理公司谈谈对seo的理解
  • 东莞市找工作上什么网seo营销是什么意思
  • 上海电子商务网站制作公司品牌推广方案案例
  • tag() wordpressseo免费培训视频
  • 怎样做能让招聘网站记住密码seo下载站
  • 好的网站具备高端网站建设报价
  • 安卓软件开发需要学什么软件企业网站seo
  • 做集装箱的网站推广营销
  • 网站等保需要几年一做seo成功案例分析
  • win主机安装wordpress网站搜索引擎优化主要方法
  • 长沙网站建设优化清理大师
  • 网站制作要用哪些软件阳泉seo
  • 买网站做设计参考属于什么费用整站优化 mail