📄 swi_handler_user.lst
字号:
156:./common/lib_AT91SAM7A3.h ****
157:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
158:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_AIC_IsActive
159:./common/lib_AT91SAM7A3.h **** //* \brief Test if an IT is active
160:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
161:./common/lib_AT91SAM7A3.h **** __inline unsigned int AT91F_AIC_IsActive (
162:./common/lib_AT91SAM7A3.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
163:./common/lib_AT91SAM7A3.h **** unsigned int irq_id) // \arg Interrupt Number
164:./common/lib_AT91SAM7A3.h **** {
165:./common/lib_AT91SAM7A3.h **** return (pAic->AIC_ISR & (0x1 << irq_id));
166:./common/lib_AT91SAM7A3.h **** }
167:./common/lib_AT91SAM7A3.h ****
168:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
169:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_AIC_IsPending
170:./common/lib_AT91SAM7A3.h **** //* \brief Test if an IT is pending
171:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
172:./common/lib_AT91SAM7A3.h **** __inline unsigned int AT91F_AIC_IsPending (
173:./common/lib_AT91SAM7A3.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
174:./common/lib_AT91SAM7A3.h **** unsigned int irq_id) // \arg Interrupt Number
175:./common/lib_AT91SAM7A3.h **** {
176:./common/lib_AT91SAM7A3.h **** return (pAic->AIC_IPR & (0x1 << irq_id));
177:./common/lib_AT91SAM7A3.h **** }
178:./common/lib_AT91SAM7A3.h ****
179:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
180:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_AIC_Open
181:./common/lib_AT91SAM7A3.h **** //* \brief Set exception vectors and AIC registers to default values
182:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
183:./common/lib_AT91SAM7A3.h **** __inline void AT91F_AIC_Open(
184:./common/lib_AT91SAM7A3.h **** AT91PS_AIC pAic, // \arg pointer to the AIC registers
185:./common/lib_AT91SAM7A3.h **** void (*IrqHandler) (), // \arg Default IRQ vector exception
186:./common/lib_AT91SAM7A3.h **** void (*FiqHandler) (), // \arg Default FIQ vector exception
187:./common/lib_AT91SAM7A3.h **** void (*DefaultHandler) (), // \arg Default Handler set in ISR
188:./common/lib_AT91SAM7A3.h **** void (*SpuriousHandler) (), // \arg Default Spurious Handler
189:./common/lib_AT91SAM7A3.h **** unsigned int protectMode) // \arg Debug Control Register
190:./common/lib_AT91SAM7A3.h **** {
191:./common/lib_AT91SAM7A3.h **** int i;
192:./common/lib_AT91SAM7A3.h ****
193:./common/lib_AT91SAM7A3.h **** // Disable all interrupts and set IVR to the default handler
194:./common/lib_AT91SAM7A3.h **** for (i = 0; i < 32; ++i) {
195:./common/lib_AT91SAM7A3.h **** AT91F_AIC_DisableIt(pAic, i);
196:./common/lib_AT91SAM7A3.h **** AT91F_AIC_ConfigureIt(pAic, i, AT91C_AIC_PRIOR_LOWEST, AT91C_AIC_SRCTYPE_HIGH_LEVEL, DefaultHandl 197:./common/lib_AT91SAM7A3.h **** }
198:./common/lib_AT91SAM7A3.h ****
199:./common/lib_AT91SAM7A3.h **** // Set the IRQ exception vector
200:./common/lib_AT91SAM7A3.h **** AT91F_AIC_SetExceptionVector((unsigned int *) 0x18, IrqHandler);
201:./common/lib_AT91SAM7A3.h **** // Set the Fast Interrupt exception vector
202:./common/lib_AT91SAM7A3.h **** AT91F_AIC_SetExceptionVector((unsigned int *) 0x1C, FiqHandler);
203:./common/lib_AT91SAM7A3.h ****
204:./common/lib_AT91SAM7A3.h **** pAic->AIC_SPU = (unsigned int) SpuriousHandler;
205:./common/lib_AT91SAM7A3.h **** pAic->AIC_DCR = protectMode;
206:./common/lib_AT91SAM7A3.h **** }
207:./common/lib_AT91SAM7A3.h **** /* *****************************************************************************
208:./common/lib_AT91SAM7A3.h **** SOFTWARE API FOR PDC
209:./common/lib_AT91SAM7A3.h **** ***************************************************************************** */
210:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
211:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_SetNextRx
212:./common/lib_AT91SAM7A3.h **** //* \brief Set the next receive transfer descriptor
213:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
214:./common/lib_AT91SAM7A3.h **** __inline void AT91F_PDC_SetNextRx (
215:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller
216:./common/lib_AT91SAM7A3.h **** char *address, // \arg address to the next bloc to be received
217:./common/lib_AT91SAM7A3.h **** unsigned int bytes) // \arg number of bytes to be received
218:./common/lib_AT91SAM7A3.h **** {
219:./common/lib_AT91SAM7A3.h **** pPDC->PDC_RNPR = (unsigned int) address;
220:./common/lib_AT91SAM7A3.h **** pPDC->PDC_RNCR = bytes;
221:./common/lib_AT91SAM7A3.h **** }
222:./common/lib_AT91SAM7A3.h ****
223:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
224:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_SetNextTx
225:./common/lib_AT91SAM7A3.h **** //* \brief Set the next transmit transfer descriptor
226:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
227:./common/lib_AT91SAM7A3.h **** __inline void AT91F_PDC_SetNextTx (
228:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller
229:./common/lib_AT91SAM7A3.h **** char *address, // \arg address to the next bloc to be transmitted
230:./common/lib_AT91SAM7A3.h **** unsigned int bytes) // \arg number of bytes to be transmitted
231:./common/lib_AT91SAM7A3.h **** {
232:./common/lib_AT91SAM7A3.h **** pPDC->PDC_TNPR = (unsigned int) address;
233:./common/lib_AT91SAM7A3.h **** pPDC->PDC_TNCR = bytes;
234:./common/lib_AT91SAM7A3.h **** }
235:./common/lib_AT91SAM7A3.h ****
236:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
237:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_SetRx
238:./common/lib_AT91SAM7A3.h **** //* \brief Set the receive transfer descriptor
239:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
240:./common/lib_AT91SAM7A3.h **** __inline void AT91F_PDC_SetRx (
241:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller
242:./common/lib_AT91SAM7A3.h **** char *address, // \arg address to the next bloc to be received
243:./common/lib_AT91SAM7A3.h **** unsigned int bytes) // \arg number of bytes to be received
244:./common/lib_AT91SAM7A3.h **** {
245:./common/lib_AT91SAM7A3.h **** pPDC->PDC_RPR = (unsigned int) address;
246:./common/lib_AT91SAM7A3.h **** pPDC->PDC_RCR = bytes;
247:./common/lib_AT91SAM7A3.h **** }
248:./common/lib_AT91SAM7A3.h ****
249:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
250:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_SetTx
251:./common/lib_AT91SAM7A3.h **** //* \brief Set the transmit transfer descriptor
252:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
253:./common/lib_AT91SAM7A3.h **** __inline void AT91F_PDC_SetTx (
254:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC, // \arg pointer to a PDC controller
255:./common/lib_AT91SAM7A3.h **** char *address, // \arg address to the next bloc to be transmitted
256:./common/lib_AT91SAM7A3.h **** unsigned int bytes) // \arg number of bytes to be transmitted
257:./common/lib_AT91SAM7A3.h **** {
258:./common/lib_AT91SAM7A3.h **** pPDC->PDC_TPR = (unsigned int) address;
259:./common/lib_AT91SAM7A3.h **** pPDC->PDC_TCR = bytes;
260:./common/lib_AT91SAM7A3.h **** }
261:./common/lib_AT91SAM7A3.h ****
262:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
263:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_EnableTx
264:./common/lib_AT91SAM7A3.h **** //* \brief Enable transmit
265:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
266:./common/lib_AT91SAM7A3.h **** __inline void AT91F_PDC_EnableTx (
267:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
268:./common/lib_AT91SAM7A3.h **** {
269:./common/lib_AT91SAM7A3.h **** pPDC->PDC_PTCR = AT91C_PDC_TXTEN;
270:./common/lib_AT91SAM7A3.h **** }
271:./common/lib_AT91SAM7A3.h ****
272:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
273:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_EnableRx
274:./common/lib_AT91SAM7A3.h **** //* \brief Enable receive
275:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
276:./common/lib_AT91SAM7A3.h **** __inline void AT91F_PDC_EnableRx (
277:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
278:./common/lib_AT91SAM7A3.h **** {
279:./common/lib_AT91SAM7A3.h **** pPDC->PDC_PTCR = AT91C_PDC_RXTEN;
280:./common/lib_AT91SAM7A3.h **** }
281:./common/lib_AT91SAM7A3.h ****
282:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
283:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_DisableTx
284:./common/lib_AT91SAM7A3.h **** //* \brief Disable transmit
285:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
286:./common/lib_AT91SAM7A3.h **** __inline void AT91F_PDC_DisableTx (
287:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
288:./common/lib_AT91SAM7A3.h **** {
289:./common/lib_AT91SAM7A3.h **** pPDC->PDC_PTCR = AT91C_PDC_TXTDIS;
290:./common/lib_AT91SAM7A3.h **** }
291:./common/lib_AT91SAM7A3.h ****
292:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
293:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_DisableRx
294:./common/lib_AT91SAM7A3.h **** //* \brief Disable receive
295:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
296:./common/lib_AT91SAM7A3.h **** __inline void AT91F_PDC_DisableRx (
297:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
298:./common/lib_AT91SAM7A3.h **** {
299:./common/lib_AT91SAM7A3.h **** pPDC->PDC_PTCR = AT91C_PDC_RXTDIS;
300:./common/lib_AT91SAM7A3.h **** }
301:./common/lib_AT91SAM7A3.h ****
302:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
303:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_IsTxEmpty
304:./common/lib_AT91SAM7A3.h **** //* \brief Test if the current transfer descriptor has been sent
305:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
306:./common/lib_AT91SAM7A3.h **** __inline int AT91F_PDC_IsTxEmpty ( // \return return 1 if transfer is complete
307:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
308:./common/lib_AT91SAM7A3.h **** {
309:./common/lib_AT91SAM7A3.h **** return !(pPDC->PDC_TCR);
310:./common/lib_AT91SAM7A3.h **** }
311:./common/lib_AT91SAM7A3.h ****
312:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
313:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_IsNextTxEmpty
314:./common/lib_AT91SAM7A3.h **** //* \brief Test if the next transfer descriptor has been moved to the current td
315:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
316:./common/lib_AT91SAM7A3.h **** __inline int AT91F_PDC_IsNextTxEmpty ( // \return return 1 if transfer is complete
317:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
318:./common/lib_AT91SAM7A3.h **** {
319:./common/lib_AT91SAM7A3.h **** return !(pPDC->PDC_TNCR);
320:./common/lib_AT91SAM7A3.h **** }
321:./common/lib_AT91SAM7A3.h ****
322:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
323:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_IsRxEmpty
324:./common/lib_AT91SAM7A3.h **** //* \brief Test if the current transfer descriptor has been filled
325:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
326:./common/lib_AT91SAM7A3.h **** __inline int AT91F_PDC_IsRxEmpty ( // \return return 1 if transfer is complete
327:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
328:./common/lib_AT91SAM7A3.h **** {
329:./common/lib_AT91SAM7A3.h **** return !(pPDC->PDC_RCR);
330:./common/lib_AT91SAM7A3.h **** }
331:./common/lib_AT91SAM7A3.h ****
332:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
333:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_IsNextRxEmpty
334:./common/lib_AT91SAM7A3.h **** //* \brief Test if the next transfer descriptor has been moved to the current td
335:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
336:./common/lib_AT91SAM7A3.h **** __inline int AT91F_PDC_IsNextRxEmpty ( // \return return 1 if transfer is complete
337:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC ) // \arg pointer to a PDC controller
338:./common/lib_AT91SAM7A3.h **** {
339:./common/lib_AT91SAM7A3.h **** return !(pPDC->PDC_RNCR);
340:./common/lib_AT91SAM7A3.h **** }
341:./common/lib_AT91SAM7A3.h ****
342:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
343:./common/lib_AT91SAM7A3.h **** //* \fn AT91F_PDC_Open
344:./common/lib_AT91SAM7A3.h **** //* \brief Open PDC: disable TX and RX reset transfer descriptors, re-enable RX and TX
345:./common/lib_AT91SAM7A3.h **** //*----------------------------------------------------------------------------
346:./common/lib_AT91SAM7A3.h **** __inline void AT91F_PDC_Open (
347:./common/lib_AT91SAM7A3.h **** AT91PS_PDC pPDC) // \arg pointer to a PDC controller
348:./common/lib_AT91SAM7A3.h **** {
349:./common/lib_AT91SAM7A3.h **** //* Disable the RX and TX PDC transfer requests
350:./common/lib_AT91SAM7A3.h **** AT91F_PDC_DisableRx(pPDC);
351:./common/lib_AT91SAM7A3.h **** AT91F_PDC_DisableTx(pPDC);
352:./common/lib_AT91SAM7A3.h ****
353:./common/lib_AT91SAM7A3.h **** //* Reset all Counter register Next buffer first
354:./common/lib_AT91SAM7A3.h **** AT91F_PDC_SetNextTx(pPDC, (char *) 0, 0);
355:./common/lib_AT91SAM7A3.h **** AT91F_PDC_SetNextRx(pPDC, (char *) 0, 0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -