make the OC8051 run

发布时间:2024-07-31  

作为开头,很多细节我就先略过了,主要简单的介绍几个步骤to make the OC8051 run。


1、获取OC8051源代码。(opencore或某电子类论坛下载)。


2、修改oc8051_defines.v。此文件可让用户对硬件进行裁剪和配置。


修改如下(部分):


 1 //

 2 // oc8051 pherypherals

 3 //

 4 `define OC8051_UART

 5 `define OC8051_TC01

 6 `define OC8051_TC2

 7 `define OC8051_PORTS  //ports global enable

 8 `define OC8051_PORT0

 9 `define OC8051_PORT1

10 `define OC8051_PORT2

11 `define OC8051_PORT3

12 

13 

14 //

15 // oc8051 ITERNAL ROM

16 //

17 //`define OC8051_ROM

18 `ifdef OC8051_ROM

19     //`define OC8051_XILINX_ROM   //rom implement as xilinx ,or comment to as generic rom. 

20 `endif

21 

22 

23 //

24 // oc8051 memory

25 //

26 //`define OC8051_CACHE

27 //`define OC8051_WB

28 

29 //-----------

30 //----ram----

31 //-----------

32 //`define OC8051_RAM_XILINX

33 //`define OC8051_RAM_VIRTUALSILICON

34 //`define OC8051_RAM_GENERIC

35 

36 

37 

38 

39 //

40 // oc8051 simulation defines

41 //

42 `define OC8051_SIMULATION

43 //`define OC8051_SERIAL

44 

45 //

46 // oc8051 bist

47 //

48 //`define OC8051_BIST


上述设置配置了默认的所有外设,并开启了仿真,而存储的设置则为,rom:无片内rom,使用片外的rom。ram:使用默认的ram模型,由寄存器组(DFF)构成,与具体实现无关,方便仿真。


3、编写C code。


主要的C代码如下:


 1 #include

 2 int i;

 3 void umain ()

 4 {

 5 

 6      i=0;    

 7      P0=0x01;

 8      IE=0x82;

 9      IP=0x02;

10      TMOD=0X01;

11      TH0=0XFF;

12      TL0=0XF0;

13      TCON=TCON | 0x10;

14      

15      while(1)

16      {

17      }

18 }

19 

20 void Ex0_ISR() interrupt 0 using 1

21 {

22 }

23 void Timer0_ISR() interrupt 1 using 2

24 {

25     TH0=0XFF;

26     if(i<8)

27     {

28     i=i+1;

29     }

30     else

31     {

32     i=0;

33     }

34 

35     P0=0x01<36 }


上述代码我使用了AT89X51.H头文件,基本上,51是一个很标准的单片机,各种51的变种都有一个相同的子集,因此使用此头文件是没有问题的,你会有疑问,主函数怎么写成


了umain,是不是笔误,不是的,它就是这样,当然这需要一些其他的操作;在此先略过。


4、3中生成的hex使用一个小工具,可以生成可作为仿真的.in;.in会被加载到外部rom(我们配置了无内部rom,直接从外部rom启动。)


运行的波形如下:

波形和程序相一致,由定时器中断驱动的一个流水灯。


注:在调试软件的时候发现一个小小的问题,由于使用了全局变量向中断函数传递信息,我第一次的写法是这样的:


#include

int i=0;

void umain ()

{

    ...

出现warming:


  *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS


    SEGMENT: ?C_INITSEG


即声明和赋值语句不能同时进行,同时我通过查看map文件和反汇编,发现汇编多出了一条奇怪的跳转指令,不过那个地方的那个奇怪指令正常情况下永远执行不到。


好吧,我承认,我是一个业余的coder,而且对于51的编程,也是2-3年前的一个课程设计了,边查边写还写出这么烂风格的C代码,可恶的是,写个全局变量还刚好


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    MCX N系列NPU智能驱动AI咖啡机,重塑咖啡研磨新境界!;MCX N系列NPU, 作为先进的人工智能处理器,以其强大的计算能力和高效的算法优化,不仅能够处理复杂的图像识别任务,还能在咖啡......
    ,因此通常洗地机上所使用流量计流量较小。如能点所研发的FM-PS2130每分钟流量为30~150ml,适用于咖啡机、洗地机管道流量检测。 这款流量计适用于检测清水,因其采用的是光学原理,内部......
    干簧传感器助力美好的早晨从一杯咖啡开始;每天早晨醒来后,你把水和咖啡豆倒入咖啡机,几分钟后,就可以享用一杯热咖啡。我们依靠咖啡机获得不同规格的美味咖啡,但是可能没考虑过机器是如何工作的。 干簧传感器是保障咖啡机......
    加密信息与设备建立安全连接;同时验证设备身份,确认它确实是 Matter 认证设备; 并确定它属于哪种设备(本例中是咖啡机);然后发送咖啡机加入网络所需的所有必要信息 (Wi-Fi 密码等)。其中包括向咖啡机......
    国芯思辰 |国产8位MCU TM52F1363助力家用咖啡机智控升级;目前市面上的咖啡机款式众多,功能各异,无论是家用还是商用都离不开家电的“智慧大脑”——微控制器(MCU);咖啡机的冲泡系统,精准......
    中科阿尔法低功耗全极霍尔开关AH466(替代HAL248)助力咖啡机位置变化;咖啡机中咖啡豆的余量自动检测功能是咖啡机的必备功能,应用霍尔传感器对咖啡机......
    咖啡机霍尔流量计;咖啡机通常可以设定不同的咖啡不同量,如卡布奇诺的咖啡奶泡更多,而美式咖啡的水占比更多,这都是由流量计控制实现的。 在咖啡机上增加一个霍尔流量计,即可实现流量控制。霍尔......
    基于8051主控芯片TM52F1376的咖啡机应用方案;目前市面上的咖啡机种类非常多,按照操作方式分为半自动和全自动两大类型。无论是哪种类型的咖啡机都有十分强大的市场需求,为了满足这个需求,本文主要介绍一款简单化的咖啡机......
    兼容SS460,双极锁存霍尔开关AH402F用于咖啡机流量计;咖啡机内部结构主要由水箱、水泵、热水器、磨豆器、咖啡粉仓、过滤器、咖啡杯等组成部分。其中水泵是咖啡机的心脏,其主......
    水槽、换能器(震荡片)和水箱,加上水就可以用了。   注意:清洗后第一次最好加凉开水,否则水中的钙质会凝结在超声波发生器上。   4、加湿器工作有两个条件:1、陶瓷振荡器振动,产生......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>