tag 标签: bios

相关博文
  • 热度 9
    2013-9-23 16:08
    837 次阅读|
    0 个评论
      1          DSP/BIOS简介 DSP/BIOS是CCS中集成的一个简易的嵌入式实时操作系统,能够大大方便用户编写多任务应用程序。DSP/BIOS拥有很多实时嵌入式操作系统的功能,如任务的调度,任务间的同步和通信,内存管理,实时时钟管理,中断服务管理等。有了它,用户可以编写复杂的多线程程序,并且会占用更少的CPU和内存资源。 DSP/BIOS是一个可用于实时调度、同步,主机和目标机通信,以及实时分析系统上的一个可裁减实时内核,它提供了抢占式的多任务调度,对硬件的及时反应,实时分析和配置工具等。同时提供标准的API接口,易于使用。它是TI的eXpressDSP实时软件技术的的一个关键部分。   1.1         DSP/BIOS的组件构成 DSP/BIOS在一个主机/目标机环境中的组件分布如图 39所示:   图 39 ?         DSP/BIOS API:编写的程序可以调用API接口函数; ?         DSP/BIOS配置:创建的配置文件定义了程序使用的静态BIOS对象; ?         DSP/BIOS分析工具:集成在CCS上的一些BIOS分析工具可以对运行与目标设备上的程序进行监测,包括CPU负载、时间、日志、线程执行状态等。   DSP/BIOS分为很多模块,提供的所有API函数都按照模块分类,以模块名加下划线开头来命名,如图 40所示为DSP/BIOS的全部模块。   图 40   1.2         DSP/BIOS的启动顺序 当DSP/BIOS的应用程序启动时,一般遵循下面的步骤: 1)  初始化DSP:DSP/BIOS程序从C/C++环境入口c_int00开始运行。对于C6000平台,在c_int00开始处,系统栈指针(B15)和全局页指针(B14)被分别设置在堆栈断的末尾和.bss断的开始。控制寄存器AMR、IER、CSR等被初始化; 2)  初始化.bss段:当堆栈被设置完成后,初始化任务被调用,利用.cinit的记录对.bss断的变量进行初始化; 3)  调用BIOS_init初始化用到的各个模块:BIOS_init调用MOD_init对配置用到的各个模块进行初始化,包括HWI_init、HST_init、IDL_init等; 4)  处理.pinit表:.pinit表包含一些指向初始化函数的指针,对C++程序,全局对象类的创建也在此时完成; 5)  调用用户程序的main函数:用户main函数可以是C/C++函数或者汇编语言函数,对于汇编函数,使用_main的函数名。由于此时的硬件、软件中断还没有被使能,所以在用户主函数的初始化中需要注意,可以使能单独的中断屏蔽位,但是不能调用类似HWI_enable的接口来使能全局中断; 6)  调用BIOS_start启动DSP/BIOS:BIOS_start在用户main函数退出后被调用,它负责使能使用的各个模块并调用MOD_startup启动每个模块。包括CLK_startup、PIP_startup、SWI_startup、HWI_startup等。当TSK管理模块在配置中被使用时,TSK_startup被执行,并且BIOS_start将不会结束返回; 7)  执行idle循环:有两种方式进入idle循环。当TSK管理模块使能时,任务调度器运行的TSK_idle任务调用IDL_loop在其它任务空闲时进入idle循环;当TSK模块未被使用时,BIOS_start调用将返回,并执行IDL_loop进入永久的idle循环,此时硬件和软件中断可以抢占idle循环得到执行。由于idle循环中管理和主机的通信,因此主机和目标机之间的数据交互可以进行了。   1.3         DSP/BIOS的配置 DSP/BIOS的静态配置是利用CCS提供的配置工具完成,包括图形化配置工具和文本配置工具。图形化工具层次清晰,比较直观,而文本工具更加灵活。通常使用图形化的配置方法,下面对主要的模块配置做一些介绍。 1.3.1          Global Setting Properties 右键点击“Global Settings”,点击“What’s This”,会弹出帮助窗口,该文件中有Global Setting Properties的各项设置说明。下面介绍的其他如MEM、LOG等配置都可以用同样的方法得到相应的帮助。 选择弹出菜单中的“Properties”,如图 41所示。   图 41 弹出如图 42所示对话框:   图 42 一般选择默认设置即可,CLKOUT项需要根据DSP硬件单板提供的工作时钟设置,Himalaya通常运行在1GHz频率。 DSP Endian Mode 项根据实际情况设置。   1.3.2          MEM设置 MEM模块设置中可以根据具体情况设置不同的内存段,其中存在一个默认的IRAM片内内存段。需要注意的是,首先必须在IRAM段上设置一个heap段落,用于BIOS的内部使用。设置方法是在IRAM段上右键选择“Properties”,弹出如图 43对话框,必须设置红线框中的选项,heap size可根据情况具体设置。   图 43 接下来配置MEM全局属性,右键点击配置窗口中的“MEM…”,如图 44所示:   图 44 点击“Properties”,弹出如图 45所示窗口:   图 45 如图红线框中,两个heap段都要选择为IRAM,“Stack Size”项需要根据实际情况设置最大的栈大小,其他使用缺省设置即可。 在图 44的菜单中,点击“Insert MEM”可创建新的内存段。在新的内存段名上右键选择“Properties”弹出如图 43窗口,根据情况设置base(基地址)、len(段长度)、heap size(用于MEM动态内存分配的堆大小)。   1.3.3          LOG设置 LOG用于输出和记录一些打印信息,默认存在一个LOG_system对象,是系统内部用来处理打印信息的,不需要去设置。可以增加新的LOG对象,用来在应用程序中输出打印信息。如图 46,在LOG标签上右键选择“Insert LOG”,填写对象名LOG_test即建立了一个新的LOG对象。   图 46 在LOG_test标签上右键选择“Properties”,弹出如图 47窗口,可对此LOG对象属性作一些设置。具体设置含义可通过Help查看。   图 47   1.3.4          CLK设置 在CLK属性中通常选择定时器Timer0作为DSP/BIOS的基准时钟,计时分辩率设置为每秒1000次中断,在1GHz系统时钟下,近似为每次定时中断间隔999.996微秒。Timer Mode选择为32bit unchained模式,即使用TCI6482的TMR0的TIMLO作为Timer0,而TIMHI还可以作其它用途使用。CLK属性配置界面如图 48所示:   图 48   1.3.5          HWI设置 HWI(硬中断)中包含HWI_INT4到HWI_INT15可用来定义用户自己的硬件中断,HWI_RESET、HWI_NMI和HWI_RESERVED不要去改动。如图49,每个硬HWI的优先级从上到下逐渐降低。   图 49 选择HWI_INT10为例,来设置EMAC/MDIO的中断,需要填写中断事件号17,并且填写中断服务程序名(C函数前面需要加下划线)如图 50所示:   图 50 在Dispatcher页面,选择“Use Dispatcher”由BIOS代理控制中断的确认和清除,不需要用户中断服务程序干预,比较简便。如图 51:   图 51     1.3.6          SWI设置 SWI(软中断)的优先级在HWI之后,但是比TSK高,可以通过右键菜单中的“Insert SWI”创建一个SWI对象,可以指定SWI内部优先级,从0(最低)到14(最高)。如图 52:   图 52   1.3.7          TSK设置 在TSK Manager(任务管理器)中可以根据需要创建各种任务,任务间是根据优先级抢占策略来进行调度的,TSK提供有多种优先级别,包括-1(Suspend)、0(Idle)、1(最低)到15(最高)。如图 53:   图 53 在TSK Manager上右键选择“Insert TSK”并填写任务名称后就可以创建一个任务,在相应任务上右键选择“Properties”可对任务属性进行设置,如图 54:   图 54 Stack Size(最大堆栈大小)和Priority(优先级)需要根据任务的具体情况进行设置。在页面,填写任务实体函数名(C函数前面加一个下划线),如图 55:   图 55     1.3.8          Synchronization设置 DSP/BIOS中任务间的通信和同步可由SEM、MBX、QUE、LCK四个模块完成: ?         SEM(信号量):用于任务同步和互斥,有计数功能,根据需要使用; ?         MBX(邮箱):也用于任务同步,可以传递少量数据,根据需要使用; ?         QUE(队列):可实现任务同步和资源的共享,根据需要使用; ?         LCK(资源锁):实现对共享资源的互斥,根据需要使用。 四种同步模块对象都可以通过各自的右键菜单中“Insert …”来创建,并可对其属性作相应的设置。如图 56所示:   图 56   1.3.9          Input/Output设置     这里可以设置一些输入/输出相关的高级设置,具体可通过CCS的帮助项来了解。一般不需要进行设置。只有RTDX(实时数据交换),需要根据目标环境的情况对数据交换模式进行一下选择,用来在调试中主机和目标机进行数据交换。可以是仿真器环境的JTAG模式,或者是模拟器环境的Simulator模式。如图 57所示:
相关资源
  • 所需E币: 1
    时间: 2023-3-30 15:57
    大小: 2.24MB
    TheBiosCompanion
  • 所需E币: 5
    时间: 2021-9-1 21:27
    大小: 1.15MB
    上传者: czd886
    面向ARM+Cortex-M系列MCU的嵌入式终端BIOS设计
  • 所需E币: 0
    时间: 2020-9-21 12:51
    大小: 4.43MB
    上传者: bwj312
    方正Q67H2-AM2BIOS,自己测试可以用
  • 所需E币: 1
    时间: 2020-9-4 15:23
    大小: 1.11MB
    上传者: zendy_731593397
    BIOS的介绍BIOS的介绍
  • 所需E币: 1
    时间: 2020-9-4 15:12
    大小: 1.11MB
    上传者: zendy_731593397
    BIOS内容介绍BIOS内容介绍
  • 所需E币: 4
    时间: 2019-12-26 12:31
    大小: 620.68KB
    上传者: 微风DS
    嵌入式引导加载技术……
  • 所需E币: 4
    时间: 2019-12-26 00:49
    大小: 573.4KB
    上传者: rdg1993
    S3C44b0x第二版的bios可是有很大的改进……
  • 所需E币: 3
    时间: 2019-12-25 22:03
    大小: 216.58KB
    上传者: rdg1993
    发点免费资料,如何开始学习DSPBIOS,希望大家喜欢。……
  • 所需E币: 3
    时间: 2019-12-25 16:50
    大小: 969.89KB
    上传者: rdg1993
    ARM学习报告003——Bios源码分析……
  • 所需E币: 4
    时间: 2019-12-25 15:57
    大小: 1.56MB
    上传者: 978461154_qq
    基于DSP系统开发过程……
  • 所需E币: 3
    时间: 2019-12-25 15:23
    大小: 269.5KB
    上传者: 16245458_qq.com
    提出了一种安全芯片的设计及其保护BIOS、底层固件、操作系统以及应用模块的方法.通过密码学原理和集成电路技术设计实现的一款安全芯片,能够有效地防止对计算机系统中操作系统、应用模块以及BIOS的攻击.基于TPM芯片的计算机安全启动系统设计水王新成,孙宏,蔡吉人,杨义先(北京邮电大学信息安全中心,北京100876)摘要:提出了一种安全芯片的设计及其保护BIOS、底层固件、操作系统以及应用模块的方法。通过密码学原理和集成电路技术设计实现的一款安全芯片,能够有效地防止对计算机系统中操作系统、应用模块以及BIOS的攻击。一关键词:BIOSTPM安全芯片安全启动系统1技术背景成对整个安全芯片的控制;加密模块完成对称密码算当前,计算机系统已被广泛应用在人们的日常生法、杂凑算法等密码算法;接口模块用于与计算机系统活中。计算机的启动过程是首先运行BIOS(B鹊icInput主板上的桥系统进行连接;RAM用于存储中间结果;OutputSystem)…,对计算机系统进行检测和配置,然后nash用于存储芯片……
  • 所需E币: 3
    时间: 2019-12-25 15:00
    大小: 2.19MB
    上传者: givh79_163.com
    TCP/IP,DynamicC,DNS,ICMP,UDP,UNIX,BIOS……
  • 所需E币: 5
    时间: 2019-12-25 14:59
    大小: 46.42KB
    上传者: givh79_163.com
    同时运行两个应用程序IIEB+HM>AN204PageSwitching:RunningTwoApplicationsonOneRabbitTargetIntroductionTorunadownloadmanagerandadownloadedprogramonthesametarget,oranyothersituationwheretwoseparate,co-residentprogramsaredesired,alittleclevernessisneces-sary.Thisapplicationnotedescribesapageswitchingsolution,amethodforchangingprogramsatruntime.Twoexamplesaregiven.Example1assumesa512KRAMand512Kflash.Example2assumes128KRAManda512KFlash.TheMemoryManagementUnitandMemoryInterfaceUnitTheDynamicCcompilerandlibrariesusuallyhandlethedetailsoftheMMU/MIUsothatmostDynamicCusersdon’thavetoknowthem,butanyonewritingtheirowndownloadm……
  • 所需E币: 5
    时间: 2019-12-25 12:41
    大小: 27.13KB
    上传者: givh79_163.com
    嵌入式系统以及如何构造一个嵌入式系统概览……
  • 所需E币: 3
    时间: 2019-12-25 10:46
    大小: 382.38KB
    上传者: 微风DS
    biostech……
  • 所需E币: 3
    时间: 2019-12-25 10:27
    大小: 799.71KB
    上传者: 16245458_qq.com
    汇编语言程序设计第5章汇编语言程序设计汇编语言(AssemblyLanguage)是一种面向CPU指令系统的程序设计语言,它采用指令系统的助记符来表示操作码和操作数,用符号地址表示操作数地址,因而易记、易读、易修改,给编程带来很大方便。用汇编语言编写的程序能够直接利用硬件系统的特性,直接对位、字节、字寄存器、存储单元、I/O接口等进行处理,同时也能直接使用CPU指令系统和指令系统提供的各种寻址方式编制出高质量的程序,这种程序不但占用内存空间少,而且执行速度快。所以计算机高级技术人员大量使用汇编语言来编写计算机系统程序,实时通信程序和实时控制程序等。用汇编语言编写的源程序在输入计算机后,需要将其翻译成目标程序,计算机才能执行相应指令,这个翻译过程称为汇编,完成汇编任务的程序称为汇编程序。8086系统中常用的汇编程序是标准汇编程序(ASM)和宏汇编程序(MASM),因此除了指令系统外,还要了解(MASM)中的标号、表达式、伪指令,必须按MASM中规定的格式来编写源程序,才能正确汇编成可执行程序。5.1汇编语言源程序的结构5.1.1分段结构鉴于8086系列微处理器都是采用存储器分段管理,其汇编语言都是以逻辑段为基础,按段的概念来组织代码和数据的,因此作为用汇编语言编写的源程序,其结构上具有以下特点:(1)由若干逻辑段组成,各逻辑段由伪指令语句定义和说明;(2)整个源程序以END伪指令结束;(3)每个逻辑段由语句序列组成,以SEGMENT语句开始,以ENDS语句结束。下面先看一个完整的用汇编语言编写程序的格式。【例5.1】……
  • 所需E币: 5
    时间: 2019-12-25 10:26
    大小: 56.86KB
    上传者: 238112554_qq
    BIOS中断调用表附录EBIOS中断调用表(INTn)中断功能号功能描述入口参数出口参数号n(AH)10H00H置显示方式AL=显示方式代码(00H~13H)―CH=光标起始行01H置光标类型―CL=光标结束行DH/DL=行/列02H置光标位置―BH=显示页03H取光标位置BH=显示页DH/DL=光标起始行/列AX=0光笔未触发AX=1光笔触发……
  • 所需E币: 3
    时间: 2019-12-25 03:45
    大小: 522.54KB
    上传者: 微风DS
    BIOS的操作流程ApplicationReportSPRA783A-September2001DSP/BIOSbyDegrees:UsingDSP/BIOS(CCStudio2.0)FeaturesinanExistingApplicationThomMaughan,KathrynRafac,MohammadKhatamiSoftwareDevelopmentSystemsABSTRACTDSP/BIOSpr……
  • 所需E币: 4
    时间: 2020-1-6 14:13
    大小: 5.81MB
    上传者: 238112554_qq
    PCI局部总线BIOS规范……
  • 所需E币: 4
    时间: 2020-1-6 17:38
    大小: 145.25KB
    上传者: 978461154_qq
    SYSBIOS简介--定时器和时钟模块……