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

最近一周新闻摘抄/seo有哪些优缺点?

最近一周新闻摘抄,seo有哪些优缺点?,莆田网站制作价格,政府部门网站方案目录 1、框架总述 2、com区和bank区 com区(公共区): bank区(也称为flash区): 3、开发时需要注意: 终上所述, 开发时需要注意如下: 4、函数放入com区的写法 1、框架总述 随着蓝讯蓝牙方案在这一年两迅速崛起, 公司也开始涉及到蓝讯蓝牙方案开发, 在这里记录一些找到资料和…

目录

1、框架总述

2、com区和bank区

com区(公共区):

bank区(也称为flash区):

3、开发时需要注意:

终上所述, 开发时需要注意如下:

4、函数放入com区的写法


1、框架总述

       随着蓝讯蓝牙方案在这一年两迅速崛起, 公司也开始涉及到蓝讯蓝牙方案开发, 在这里记录一些找到资料和自己的理解, 和大家一起分享。

       LX蓝牙芯片采用最近比较流行的RISC-V(32位)开源内核架构 + 国产RT-Thread操作系统。不过从代码上来看, 操作系统代码已经被封装到库中, 一般用户可以不用涉及操作系统代码, 降低了开发难度。

LX芯片“冯·诺依曼结构”, 即代码与数据的统一编址。框架结构大致如下:

 

芯片内部一般会封装一颗512K或1M SpiFlash, 用于存放代码及资源文件/参数记忆等. SpiFlash和芯片之间通过spi接口进行通信.

       首先,代码不会直接在SpiFlash上运行, SpiFlash中所有程序及数据均需要先通过spi接口加载到芯片RAM中, CPU再从RAM中取指令或数据运行.

2、com区和bank区

基于上述的程序存储框架, LX芯片在程序编写时, 有两个重要的概念: com区(公共区) 和 bank区.

com区(公共区):

       芯片上电, 一般从Mask程序区开始运行, 在进入main函数之前, 程序会先把com区程序从Flash加载到芯片内部Ram. 由于在程序的整个生命周期内, com区程序会一直保留在RAM中. CPU执行com区代码会很快.  

但由于芯片RAM有限, com区一般分配在几十K以内.

bank区(也称为flash区):

Flash中的bank区(存储区)一般是几百K以上.

RAM中的bank程序运行区(类似cache), 一般从几K到几十K不等.

       由于RAM中的bank区远远小于FLASH中的bank区, 所以CPU会根据需要不断把Flash(bank程序存储区)中的代码动态替换(加载)到 RAM中的bank程序运行区运行. 由于芯片与Flash之间通过spi进行通信, bank区代码执行速度相对比较慢.

3、开发时需要注意:

终上所述, 开发时需要注意如下:

  • 1)中断函数(及其子函数)必须放入com区, 否则(放入bank区)会导致死机.

   中断响应需要非常及时, com区程序常驻于RAM中, CPU可以迅速响应中断函数.  

       如果中断函数放入bank区, 中断响应时,可能该bank区还未加载到RAM中, 还需要先加载再运行,耗时相对较慢.  为了防止中断响应慢,芯片做了限定: 中断中加载bank区代码则直接死机. 

   另外需要特别注意: 中断函数中不能有switch语句, swith语句编译后生成的跳转常量表会默认放到bank区, 引起中断函数访问bank区死机. 请用if-else语句代替switch语句.

   一些实时性要求比较高的代码,首选放入com区.

  • 2).函数前没有AT指定存放段的代码, 默认放入bank区,  bank区代码自动加载(或替换), 不需要人工干预.

       由于bank区加载到RAM, 需要spi通信, IO翻转会有一定干扰, 在一些对干扰敏感的应用中, 如FM, 可以把所有相关程序放入同一个命名的bank, 这样bank加载时, 会大概率地把所有同一bank中的程序一次性加载到RAM中,减少程序运行时可能不断多次地加载引起的spi通信干扰.

4、函数放入com区的写法

在函数前面加入AT(.指定段名到com区) 即可.示例如 usr_tmr1ms_isr函数前面AT(.com_text.timer)

AT(.com_text.timer) 
void usr_tmr1ms_isr(void)
{gui_scan();                   .....
}

 在map.text中可以看到, usr_tmr1ms_isr位于 0x20e4a.位于0x20000~ (0x20000+34K) 的com区内.

 

另外有一点, printf参数中的字符串常量也是默认放在bank区中, 如果在中断中调用printf, 也需要把字符串常量放入com区.

如下:

AT(.com_text.str1)

const char str1[] = “Com String”;

AT(.com_text.str2) / / 注意每个字符串前都需要增加 AT定位到com区去.

const char str2[] = “val = %d\n”;

调用printf时, 直接使用该字符串即可:

AT(.com_text.timer)void usr_tmr5ms_isr(void){     printf(str1);printf(str2, test_val);……}

参考资料:

[1]中科蓝讯蓝皮书————芯片框架简述

http://www.bjxfkj.com.cn/article/690.html

相关文章:

  • 什么是网络营销?有何特点/苏州百度关键词优化
  • 企业营销型网站概念/杭州seo软件
  • 做网站公司那家好/手机百度安装下载
  • 网站建设用语/肇庆网站建设制作
  • 济南学习做网站/2023年12月疫情又开始了吗
  • 上海网站seo优化/网站制作基本流程
  • 凡客网站设计/seo软文是什么意思
  • 福建省城乡建设官方网站/福州短视频seo机会
  • 深圳市网站建设公司设计/地推网app推广平台
  • php开发网站 用java做后台/竞价外包
  • 清远网站seo公司/比较好的网站建设网站
  • 织梦的网站关键词/高端网站定制开发
  • 西安云英网站建设/上海seo网站策划
  • asp网站伪静态文件下载/网站建设黄页免费观看
  • 新疆宏远建设集团有限公司网站/嘉峪关seo
  • 网站首页页面/seo优化关键词排名优化
  • 网站建设的企业/河南网站seo费用
  • 深圳市网站建设公司设计/网站首页排名seo搜索优化
  • 东莞企业官方网站建设/网站收录查询网
  • 网站关键词如何优化/在线域名ip查询
  • 网站开发的工作制度/网站模板价格
  • 云南做网站需要多少钱/怎么制作自己的网站
  • wordpress 速度慢/网络优化大师手机版
  • wordpress head优化/上海优化网站seo公司
  • 成都网站制作成都网站制作/网站模板建站
  • 网站的内部优化公司/搜狗快速收录方法
  • 政府网站 电子政务建设/网络营销课程个人总结3000字
  • 绵阳网站关键词/厦门seo
  • 衡水网站建设公司哪家比较好/广州宣布5条优化措施
  • j2ee网站开发参考文献/深圳市住房和建设局官网