共2条
1/1 1 跳转至页
44BLIB,nbsp,nbsp 各位大哥,请您帮我看看这段段 44BLIB.C 代码,谢谢!
问
/************************************************
* NAME : 44BLIB.C *
************************************************/
#include "44b.h"
#include "44blib.h"
#include "def.h"
#include "option.h"
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#define STACKSIZE 0xa00 //SVC satck size(do not use user stack)
#define HEAPEND (_ISR_STARTADDRESS-STACKSIZE-0x500) // = 0xc7ff000
//SVC Stack Area:0xc(e)7ff000-0xc(e)7ffaff
extern char Image$$RW$$Limit[];
void *mallocPt=Image$$RW$$Limit;
void Port_Init(void)
{
//ADB V1.0 B/D Status
//USB D12SUSPD
// PC0
//LED D0 D1 D2
// PC1 PC2 PC3
//KEY K0 K1 K2 K3
// PG4 PG5 PG6 PG7
//CAUTION:Follow the configuration order for setting the ports.
// 1) setting value
// 2) setting control register
// 3) configure pull-up resistor.
//16bit data bus configuration
//PORT A GROUP
//rPCONA[9:0]
//|BIT9 |.......................................................|BIT0
//|ADDR24|ADDR23|ADDR22|ADDR21|ADDR20|ADDR19|ADDR18|ADDR17|ADDR16|ADDR0
//| 0| 1| 1| 1| 1| 1| 1| 1| 1| 1
rPCONA=0x1ff;
//PORT B GROUP
//rPCONB[10:0]
//|BIT10|....................................................|BIT0
//|nGCS5|nGCS4|nGCS3|nGCS2|nGCS1|nWBE3|nWBE2|nSRAS|nSCAS|SCLK|SCKE
//| 1| 1| 1| 1| 1| 1| 1| 1| 1| 1| 1
rPDATB=0x3ff;
rPCONB=0x3ff;
//PORT C GROUP
//BUSWIDTH=16
//PORT C GROUP
//rPCONC[31:0]
//|GPC15|....................................................................| GPC0
//|BIT31|....................................................................| BIT0
//|nCTS0|nRTS0|RXD1|TXD1|nCTS1|nRTS1|nEL|nDISP|VD4|VD6|VD5|VD7|LED2|LED1|LED0|D12SUSPD
//| 00| 00| 11| 11| 00| 00| 01| 01| 11| 11| 11| 11| 01| 01| 01| 01
//rPUPC[15:0]
//| 0| 0| 1| 1| 0| 0| 0| 0| 1| 1| 1| 1| 0| 0| 0| 0
rPDATC=0xffff; //All I/O Is High
rPCONC=0x0f05ff55;
rPUPC=0x30f0; //PULL UP RESISTOR should be enabled to I/O
//PORT D GROUP
//rPCOND
//| BIT15|.........................|BIT0
//|VFRAME|VM|VLINE|VCLK|VD3|VD2|VD1|VD0
//| 10|10| 10| 10| 10| 10| 10| 10
rPDATD=0xff;
rPCOND= 0x0;
rPUPD = 0x0;
//These pins must be set only after CPU's internal LCD controller is enable
//rPCOND=0xaaaa;
//rPUPD=0xff;
//PORT E GROUP
//rPCONE
//| BIT17 |..............................|BIT0
//|CODECLK|PE7|PE6|BEEP|PE4|PE3|RXD0|TXD0| PE0
//| 10| 01| 01| 01| 01| 01| 10| 10| 00
//|rPUPE[7:0]
// | 0| 0| 0| 0| 0| 1| 1| 0
rPDATE=0x1ff; //All I/O Is High
rPCONE=0x25568; //All NC is INPUT
rPUPE=0x0ff; //PE8 do not have programmable pull-up resistor.
//PORT F GROUP
//rPCONF[21:0]
//| BIT21|....................................| BIT0
//|IISCLK|PF7|IISDO|IISLRCK|PF4|PF3|PF2|IICSDA|IICSCL
//| 100|000| 100| 100| 00| 00| 00| 10| 10
//rPUPF[8:0]
//| 1| 0| 1| 1| 0| 0| 0| 1| 1
rPDATF=0x1ff; //All I/O Is High
rPCONF=0x20900a;//All NC is INPUT
rPUPF=0x163;
//PORT G GROUP
//rPCONG[15:0]
//|BIT15|....................................| BIT0
//| KEY3|KEY2|KEY1|KEY0|EXINT3|EXINT2|NET_INT|USB_INT
//| 11| 11| 11| 11| 11| 11| 11| 11
rPDATG=0xff;
rPCONG=0x00ff; //KEY0~KEY3定义为I/O,采用查询方式
//rPCONG=0xffff,KEY0~KEY3定义为中断,
rPUPG=0x0; //should be enabled
rSPUCR=0x7; //D15-D0 pull-up disable
rEXTINT=0x0; //All EXTINT0-7 Low level interrupt
//Define the Non_Cache area
rNCACHBE0=(((Non_Cache_End)>>12)<<16)|((Non_Cache_Start)>>12);
}
各位大哥:
问题1:
#define STACKSIZE 0xa00 //SVC satck size(do not use user stack)
#define HEAPEND (_ISR_STARTADDRESS-STACKSIZE-0x500) // = 0xc7ff000
这两句话分别定义的什么?
问题2:
rPCONA=0x1ff; 定义的是什么?
问题3:
rPDATB=0x3ff;
rPCONB=0x3ff;
分别定义的是什么呢?
问题4:
rPDATC=0xffff; //All I/O Is High
rPCONC=0x0f05ff55;
rPUPC=0x30f0;
分别定义的是什么呢?
问题5:
rPDATD=0xff;
rPCOND= 0x0;
rPUPD = 0x0;
分别定义的是什么呢?
问题6:
rPDATE=0x1ff; //All I/O Is High
rPCONE=0x25568; //All NC is INPUT
rPUPE=0x0ff; //PE8 do not have programmable pull-up resistor.
分别定义的是什么啊?
问题8:
44BLIB.C
这段程序的主要目的是什么啊?
谢谢各位大哥! 答 1: 各位老大,小弟在期望啊~~各位老大,小弟在期望啊~~
答 2: 我晕死了你不说这是应用在什么上面的程序
鬼才晓得是干什么的 答 3: re:javie :
这是我买的开发板给的一个测试程序(按键测试程序)
其中的一段小程序! 答 4: 大哥啊你的开发板上的芯片是什么系列的啊?
三星的?
不过这种测试程序经常是很难看懂的
答 5: 不是吧,这个看不懂?就是44b的寄存器设置啊。主要是GPIO的主要是gpio的功能选择,内部上拉选择,初始电平设置等。另外,除了问题1,其他的不是“定义”,是赋值。问题1分别是堆栈大小和栈顶地址。 答 6: 太感谢 zkking 和 javie 了~~太感谢 zkking 和 javie 了~~!
懂拉~
* NAME : 44BLIB.C *
************************************************/
#include "44b.h"
#include "44blib.h"
#include "def.h"
#include "option.h"
#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#define STACKSIZE 0xa00 //SVC satck size(do not use user stack)
#define HEAPEND (_ISR_STARTADDRESS-STACKSIZE-0x500) // = 0xc7ff000
//SVC Stack Area:0xc(e)7ff000-0xc(e)7ffaff
extern char Image$$RW$$Limit[];
void *mallocPt=Image$$RW$$Limit;
void Port_Init(void)
{
//ADB V1.0 B/D Status
//USB D12SUSPD
// PC0
//LED D0 D1 D2
// PC1 PC2 PC3
//KEY K0 K1 K2 K3
// PG4 PG5 PG6 PG7
//CAUTION:Follow the configuration order for setting the ports.
// 1) setting value
// 2) setting control register
// 3) configure pull-up resistor.
//16bit data bus configuration
//PORT A GROUP
//rPCONA[9:0]
//|BIT9 |.......................................................|BIT0
//|ADDR24|ADDR23|ADDR22|ADDR21|ADDR20|ADDR19|ADDR18|ADDR17|ADDR16|ADDR0
//| 0| 1| 1| 1| 1| 1| 1| 1| 1| 1
rPCONA=0x1ff;
//PORT B GROUP
//rPCONB[10:0]
//|BIT10|....................................................|BIT0
//|nGCS5|nGCS4|nGCS3|nGCS2|nGCS1|nWBE3|nWBE2|nSRAS|nSCAS|SCLK|SCKE
//| 1| 1| 1| 1| 1| 1| 1| 1| 1| 1| 1
rPDATB=0x3ff;
rPCONB=0x3ff;
//PORT C GROUP
//BUSWIDTH=16
//PORT C GROUP
//rPCONC[31:0]
//|GPC15|....................................................................| GPC0
//|BIT31|....................................................................| BIT0
//|nCTS0|nRTS0|RXD1|TXD1|nCTS1|nRTS1|nEL|nDISP|VD4|VD6|VD5|VD7|LED2|LED1|LED0|D12SUSPD
//| 00| 00| 11| 11| 00| 00| 01| 01| 11| 11| 11| 11| 01| 01| 01| 01
//rPUPC[15:0]
//| 0| 0| 1| 1| 0| 0| 0| 0| 1| 1| 1| 1| 0| 0| 0| 0
rPDATC=0xffff; //All I/O Is High
rPCONC=0x0f05ff55;
rPUPC=0x30f0; //PULL UP RESISTOR should be enabled to I/O
//PORT D GROUP
//rPCOND
//| BIT15|.........................|BIT0
//|VFRAME|VM|VLINE|VCLK|VD3|VD2|VD1|VD0
//| 10|10| 10| 10| 10| 10| 10| 10
rPDATD=0xff;
rPCOND= 0x0;
rPUPD = 0x0;
//These pins must be set only after CPU's internal LCD controller is enable
//rPCOND=0xaaaa;
//rPUPD=0xff;
//PORT E GROUP
//rPCONE
//| BIT17 |..............................|BIT0
//|CODECLK|PE7|PE6|BEEP|PE4|PE3|RXD0|TXD0| PE0
//| 10| 01| 01| 01| 01| 01| 10| 10| 00
//|rPUPE[7:0]
// | 0| 0| 0| 0| 0| 1| 1| 0
rPDATE=0x1ff; //All I/O Is High
rPCONE=0x25568; //All NC is INPUT
rPUPE=0x0ff; //PE8 do not have programmable pull-up resistor.
//PORT F GROUP
//rPCONF[21:0]
//| BIT21|....................................| BIT0
//|IISCLK|PF7|IISDO|IISLRCK|PF4|PF3|PF2|IICSDA|IICSCL
//| 100|000| 100| 100| 00| 00| 00| 10| 10
//rPUPF[8:0]
//| 1| 0| 1| 1| 0| 0| 0| 1| 1
rPDATF=0x1ff; //All I/O Is High
rPCONF=0x20900a;//All NC is INPUT
rPUPF=0x163;
//PORT G GROUP
//rPCONG[15:0]
//|BIT15|....................................| BIT0
//| KEY3|KEY2|KEY1|KEY0|EXINT3|EXINT2|NET_INT|USB_INT
//| 11| 11| 11| 11| 11| 11| 11| 11
rPDATG=0xff;
rPCONG=0x00ff; //KEY0~KEY3定义为I/O,采用查询方式
//rPCONG=0xffff,KEY0~KEY3定义为中断,
rPUPG=0x0; //should be enabled
rSPUCR=0x7; //D15-D0 pull-up disable
rEXTINT=0x0; //All EXTINT0-7 Low level interrupt
//Define the Non_Cache area
rNCACHBE0=(((Non_Cache_End)>>12)<<16)|((Non_Cache_Start)>>12);
}
各位大哥:
问题1:
#define STACKSIZE 0xa00 //SVC satck size(do not use user stack)
#define HEAPEND (_ISR_STARTADDRESS-STACKSIZE-0x500) // = 0xc7ff000
这两句话分别定义的什么?
问题2:
rPCONA=0x1ff; 定义的是什么?
问题3:
rPDATB=0x3ff;
rPCONB=0x3ff;
分别定义的是什么呢?
问题4:
rPDATC=0xffff; //All I/O Is High
rPCONC=0x0f05ff55;
rPUPC=0x30f0;
分别定义的是什么呢?
问题5:
rPDATD=0xff;
rPCOND= 0x0;
rPUPD = 0x0;
分别定义的是什么呢?
问题6:
rPDATE=0x1ff; //All I/O Is High
rPCONE=0x25568; //All NC is INPUT
rPUPE=0x0ff; //PE8 do not have programmable pull-up resistor.
分别定义的是什么啊?
问题8:
44BLIB.C
这段程序的主要目的是什么啊?
谢谢各位大哥! 答 1: 各位老大,小弟在期望啊~~各位老大,小弟在期望啊~~
答 2: 我晕死了你不说这是应用在什么上面的程序
鬼才晓得是干什么的 答 3: re:javie :
这是我买的开发板给的一个测试程序(按键测试程序)
其中的一段小程序! 答 4: 大哥啊你的开发板上的芯片是什么系列的啊?
三星的?
不过这种测试程序经常是很难看懂的
答 5: 不是吧,这个看不懂?就是44b的寄存器设置啊。主要是GPIO的主要是gpio的功能选择,内部上拉选择,初始电平设置等。另外,除了问题1,其他的不是“定义”,是赋值。问题1分别是堆栈大小和栈顶地址。 答 6: 太感谢 zkking 和 javie 了~~太感谢 zkking 和 javie 了~~!
懂拉~
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |