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

湖州网站网站建设网站建设用什么技术

湖州网站网站建设,网站建设用什么技术,家装设计的公司有那些,偃师 做网站上电过程 上电后,CPU从固定的位置读取复位向量。 这个固定的位置就是0xFFFE。是芯片厂商出厂时预设好的。 这个地址是NON_BANKED的。这个位置保存的是复位向量,实际上就是一个函数指针。该函数指针指向_Startup()函数。 map文件: 注意:程序…

上电过程

上电后,CPU从固定的位置读取复位向量。

这个固定的位置就是0xFFFE。是芯片厂商出厂时预设好的。

这个地址是NON_BANKED的。这个位置保存的是复位向量,实际上就是一个函数指针。该函数指针指向_Startup()函数。

map文件:

注意:程序的入口点是_Startup,不是main()。

_Startup函数是存放在0xC000位置。而0xFFFE地址的值就是0xC000.

S19文件:

_Startup()函数分析

打开 Start12.c文件,可以看到_Startup()函数。

/* The function _Startup must be called in order to initialize global variables and to call main */
/* You can adapt this function or call it from your startup code to implement a different startup */
/* functionality. *//* You should also setup the needed IO registers as WINDEF (HC12A4 only) or the COP registers to run */
/* on hardware *//* to set the reset vector several ways are possible : */
/* 1. define the function with "interrupt 0" as done below in the first case */
/* 2. add the following line to your prm file : VECTOR ADDRESS 0xfffe _Startup */
/* of course, even more posibilities exists */
/* the reset vector must be set so that the application has a defined entry point */#if defined(__SET_RESET_VECTOR__)
__EXTERN_C void __interrupt 0 _Startup(void) {
#else
__EXTERN_C void _Startup(void) {
#endif
/*  purpose:    1)  initialize the stack2)  initialize the RAM, copy down init data etc (Init)3)  call main;parameters: NONEcalled from: _PRESTART-code generated by the Linkeror directly referenced by the reset vector *//* initialize the stack pointer */INIT_SP_FROM_STARTUP_DESC(); /*lint !e522 asm code */ /* HLI macro definition in hidef.h */#if defined(_HCS12_SERIALMON)/* for Monitor based software remap the RAM & EEPROM to adhereto EB386. Edit RAM and EEPROM sections in PRM file to match these. */___INITRG = 0x00;  /* lock registers block to 0x0000 */___INITRM = 0x39;  /* lock Ram to end at 0x3FFF */___INITEE = 0x09;  /* lock EEPROM block to end at 0x0fff */
#endif/* Here user defined code could be inserted, the stack could be used */
#if defined(_DO_DISABLE_COP_)_DISABLE_COP();
#endif/* Example : Set up WinDef Register to allow Paging */
#ifdef HC812A4 /* HC12 A4 derivative needs WINDEF to configure which pages are available */
#if  (__ENABLE_EPAGE__ != 0 ||  __ENABLE_DPAGE__ != 0 || __ENABLE_PPAGE__ != 0)WINDEF= __ENABLE_EPAGE__ | __ENABLE_DPAGE__  | __ENABLE_PPAGE__;
#endif
#endif#if (defined(__MAP_RAM__) || defined(__MAP_FLASH__) || defined(__MAP_EXTERNAL__)) && !defined(__DO_SET_MMCTL1__)
#define __DO_SET_MMCTL1__
#endif#if defined(__DO_SET_MMCTL1__)/* Set the MMCTL1 byte. Please use for HCS12XE and change the bits according   *//* to your configuration.                                                      *//* Note: MMCTL1 is write once therefore please adapt this initialization here. *//* This has to be done prior to the call to Init.                              */
#define _MMCTL1_ADR (0x00000013)
#define _MMCTL1_BIT_TGMRAMON (1<<7)  /* EEE Tag RAM and FTM SCRATCH RAM visible in the memory map */
#define _MMCTL1_BIT_EEEIFRON (1<<5)  /* EEE IFR visible in the memory map                         */
#define _MMCTL1_BIT_PGMIFRON (1<<4)  /* Program IFR visible in the memory map                     */
#define _MMCTL1_BIT_RAMHM    (1<<3)  /* RAM only in the higher half of the memory map             */
#define _MMCTL1_BIT_EROMON   (1<<2)  /* Enables emulated Flash or ROM memory in the memory map    */
#define _MMCTL1_BIT_ROMHM    (1<<1)  /* FLASH or ROM only in higher Half of Memory Map            */
#define _MMCTL1_BIT_ROMON    (1<<0)  /* Enable FLASH or ROM in the memory map                     */#define _MMCTL1_SET(value)   ((*(volatile unsigned char*)_MMCTL1_ADR)= (value))#if defined(__MAP_FLASH__)_MMCTL1_SET(_MMCTL1_BIT_ROMON | _MMCTL1_BIT_EROMON);
#elif defined(__MAP_EXTERNAL__)_MMCTL1_SET(_MMCTL1_BIT_ROMON | _MMCTL1_BIT_EROMON | _MMCTL1_BIT_ROMHM);
#else /* RAM */_MMCTL1_SET(_MMCTL1_BIT_ROMON | _MMCTL1_BIT_EROMON | _MMCTL1_BIT_RAMHM | _MMCTL1_BIT_ROMHM);
#endif    
#endif#ifndef __ONLY_INIT_SPInit(); /* zero out, copy down, call constructors */
#endif/* Here user defined code could be inserted, all global variables are initilized */
#if defined(_DO_ENABLE_COP_)_ENABLE_COP(1);
#endif/* call main() */main();
}

其实,删除掉各种define,去繁存精,只干了三件事:设置栈指针SP,调用init(),然后调用main()。

从map文件中也可以验证:

BOOTLOADER设计

在有BOOT的系统中,程序分为两部分:BOOT和APP。

这里面就有两套中断。需要在BOOT中做特殊处理。

在升级过程中,接收到上位机发过来的APP的bin文件时,需要调整中断向量保存的位置。(因为APP工程中生成的中断向量也是保存在0xFF10开始的位置)

上电后,CPU还是先从BOOT开始执行。在BOOT中作一些判断,确认APP正常后,跳转到APP中去执行。但是在跳转前,需要先配置中断向量基地址寄存器(IVBR),确保中断向量指向正确的位置。

注意:IVBR是个8位的寄存器,而中断向量起始地址是16位的,其中低8位默认为0.


文章转载自:

http://djComiPn.kyfnh.cn
http://iacFLRcN.kyfnh.cn
http://OlAPcttJ.kyfnh.cn
http://L9ZVPsSM.kyfnh.cn
http://RLa4Abt3.kyfnh.cn
http://6xTkWeBE.kyfnh.cn
http://ARE7zL2N.kyfnh.cn
http://KHpp8U2f.kyfnh.cn
http://LAOS7i6t.kyfnh.cn
http://p08DB9Va.kyfnh.cn
http://kDVqJA0T.kyfnh.cn
http://m9mbPPs1.kyfnh.cn
http://IJTrGTo9.kyfnh.cn
http://flztI0N2.kyfnh.cn
http://Ef8yDdZr.kyfnh.cn
http://kWHsUJv6.kyfnh.cn
http://FILM55kZ.kyfnh.cn
http://3mor4kdZ.kyfnh.cn
http://uHLBQBTg.kyfnh.cn
http://zO2Ostor.kyfnh.cn
http://xObajTuL.kyfnh.cn
http://uI8BxSAa.kyfnh.cn
http://HPRQhQCO.kyfnh.cn
http://sI5k3qvE.kyfnh.cn
http://5yGTUE50.kyfnh.cn
http://4LYv7xUN.kyfnh.cn
http://wy7isAOf.kyfnh.cn
http://gwcLry8G.kyfnh.cn
http://Z2KeV1On.kyfnh.cn
http://1SzkzamK.kyfnh.cn
http://www.dtcms.com/wzjs/679850.html

相关文章:

  • 网站开发文件上传到服务器介绍一个做美食的网站
  • 公司国外网站建设做网站哪个平台好
  • 网站开发程序介绍石家庄网站建设成功案例
  • 如何登录网站服务器dedecms5.7装饰公司网站模板
  • 国外做宠物用品的网站谁家网站做的好
  • 静态网站建设的主要技术常州网站专业制作
  • 镇江网站优化大收录量的网站怎么做
  • python做爬虫和做网站一个网站是怎么做出来的
  • 做外贸比较好用的网站有哪些邯郸网站建设价格
  • 个人网站如何做淘宝客携程旅行网网站策划书
  • 东营设计网站建设百度下载安装到手机
  • 有没有专门做二手电脑的网站wordpress xydown
  • 做最优秀的自己演讲视频网站广州富邦物流网站建设
  • 成都网站建设科技公司v9双语版网站怎么做
  • 网站建设先进技术怎么做网站导航
  • 第一模板网站wordpress 会话
  • 龙江网站设计制作wed是什么意思
  • 贷款类的网站好做怎么做网店美工设计模板
  • 企业网站建设搭建重庆网络教育学院官网
  • 网站开发与数据库怎样用ps做网站首页图
  • 帮忙做公司网站个人做电商网站icp
  • 凉山州住房和城乡建设局网站网站内容维护更新方法
  • 湘潭市 网站建设哈尔滨的网络优化能做么
  • 网站界面分析个人网站注册什么域名
  • 网站高防服务器租用做餐饮网站建设
  • 普集网站开发站长工具的使用seo综合查询运营
  • 网站方案设计wordpress幻灯片插件怎么用
  • 无代码企业网站开发wordpress 域名绑定 方块
  • 手机端网站制作做网站维护要什么专业
  • 菠菜彩票网站怎么建设本地app开发公司电话