程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9763|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. w! V1 ?1 i) `  W% t* n: c
#include <linux/init.h>2 W5 D/ i& B9 u& e+ L/ A. k) K
#include <linux/module.h>6 H# P+ y5 @# Q: o( U
#include <linux/kernel.h>
8 C- ~8 C; w8 }, [0 x# L#include <linux/types.h>; @( H# a( D8 R. L9 S; H
#include <linux/gpio.h>; U# [5 d  h* S2 B+ G; [7 \( c0 J- I
#include <linux/leds.h># O1 g, F3 v) c
#include <linux/platform_device.h>7 J5 u) N* a( C- B; x( M+ D+ w
- V6 l( i5 e9 t3 y: n8 i3 P
#include <asm/mach-types.h>: W$ l- t% Z" ?+ o: w3 p' j8 K7 \
#include <asm/mach/arch.h>+ G% L7 j$ F) g8 b+ B- W
#include <mach/da8xx.h>
/ w7 ]2 s- v! p+ p1 R( a+ h5 O+ Q#include <mach/mux.h>8 q( M! ~5 c; D; l5 O

( M" F9 s- M$ Q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ c. r* V6 ^  B6 j! }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)- ]; t4 h$ ?, K3 N3 u9 f: J; m
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 q% f# O! D7 o) v* |
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 o2 q( o: L/ M5 O% j3 O! R5 |' _. F2 c  D3 B! k0 F
/* assign the tl som board LED-GPIOs*/
  M% N, K6 x$ T2 {. K; N7 e) |static const short da850_evm_tl_user_led_pins[] = {* D) b/ o- ]! @, g& Z3 L/ m
        /* These pins are definition at <mach/mux.h> file */$ {, `! d1 P9 I( @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 j( j' a3 p9 s: J8 w        -13 |3 E3 U$ E+ J1 W! f( h+ i
};
4 q, T7 R* [1 ^# L) J  W3 M* k! V7 R3 s0 a$ U
static struct gpio_led da850_evm_tl_leds[] = {
# t* W4 U+ f& o& h3 c        {
& Z/ j; {. q0 U" F& u: x# Q9 N* W                .active_low = 0," H' U2 K' ?: d, F8 C8 g/ o  U/ E
                .gpio = DA850_USER_LED0,  i, A' J& B/ t; T3 n
                .name = "user_led0",
' t$ ?! [3 |' J* o! r                .default_trigger = "default-on",! L2 d$ Z7 w2 p3 [( r- D1 D3 ~
        },, B/ d9 v. E: ^' A7 J; T
        {
# J2 C7 M' m% H% ?                .active_low = 0,
6 N2 }: T, m" l                .gpio = DA850_USER_LED1,3 Q% r4 ^- s7 B7 x3 h* o7 K2 G! }
                .name = "user_led1",6 [" s2 t5 F7 U
                .default_trigger = "default-on",6 D% |3 ?/ }& O; t2 r
        },
" G9 T: {. G% N2 ?3 u2 g$ J5 F        {
. e/ @' o% F6 e1 u                .active_low = 0,# n2 \& f; |0 t+ E
                .gpio = DA850_USER_LED2,
' t1 w0 j! _) S! a5 V% ~  W  k                .name = "user_led2",9 s" e* J# g3 j" B
                .default_trigger = "default-on",
' q' R( }- p: k) ?5 G/ H        },* z0 @$ Y+ s) N4 E
        {
4 p* }  }' |$ Y# c) k! ]7 _% T4 H                .active_low = 0,
3 w7 {9 E! q2 Z                .gpio = DA850_USER_LED3,
; V/ P6 H8 v/ q2 ^4 B6 M$ l# H3 `                .name = "user_led3",
2 ^5 Y0 G" x" b                .default_trigger = "default-on",) z! W2 i6 v3 y: u7 r# `6 J
        },1 i- `* j1 ~/ F( C. a4 ^
};
4 ^- k9 L3 z- H+ [: Z
% D) ~' p, p1 U% P& @" Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
/ D4 z# h, p; a  ?& j        .leds = da850_evm_tl_leds,
! n( n. H/ g* H6 F9 ^" x7 H  P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ Z6 [, y( e$ ?2 E% p8 o+ i
};
. N6 U7 W8 L) E9 s5 `  ?# `/ c6 J' s- P8 ]$ j
static void led_dev_release(struct device *dev)8 E* \7 U6 H: `  y
{
4 R7 ?  B8 y) d7 E};
- J& n" m+ W  ?9 f
: ?- i  i, T# \4 l& Nstatic struct platform_device da850_evm_tl_leds_device = {- v% s, ?8 P4 C
        .name                = "leds-gpio",; v' f& A6 Q& p( G1 L2 m& _! s
        .id                = 1,
) s% B: k) N/ [0 R8 E/ z" u# l        .dev = {$ B8 Q0 \5 Z8 f
                .platform_data = &da850_evm_tl_leds_pdata,
# D3 T2 i/ f$ g. v0 M                .release = led_dev_release,
4 ]: t6 J0 F$ p# X2 T3 F: b        }
$ y, c) R% |) J};* ]3 M; S" F  r8 E& S  f

" y- d4 D- l& M9 U6 ?! g' {static int __init led_platform_init(void)
8 E% \( q/ ~  r8 |5 ?$ b9 e- ~{
" ^3 W! t. _0 g# B        int ret;! e7 y# i# V1 j* `: E4 B
#if 0$ Q; B9 M6 w( P4 E7 f/ ^* C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: Y7 i( [7 v1 ~7 `
        if (ret)& T  F1 |% q( X! l0 A6 [
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 ]- M* ~0 ^" g, w' x
                                "%d\n", ret);
! i' h5 G9 a1 M+ N( ~/ b( v& Y" y#endif
3 ]* ~2 U2 ?/ H0 T$ n        ret = platform_device_register(&da850_evm_tl_leds_device);  l1 T$ q- B9 i. x1 u" {# K7 V) W
        if (ret)" m* B& T  ^- e9 s, n6 H- g8 n
                pr_warning("Could not register som GPIO expander LEDS");/ e% r8 ?6 Z+ X+ n# Q
        else2 {* |% f3 W  n9 ^9 K- C& X5 f' _
                printk(KERN_INFO "LED register sucessful!\n");
: c) a4 k; A& A" d$ s6 h) x- q7 B
        return ret;
( G  r: y( S% \! u% d}. u5 @' R( d3 D1 p# W; Z, p# |0 f' N
* d5 S: O( }1 f9 L- O# B
static void __exit led_platform_exit(void)7 M+ G  K. Y- b. R: c+ D6 M
{# p* S6 D3 x* P1 q( }1 N. ~
        platform_device_unregister(&da850_evm_tl_leds_device);
2 _$ N! U  t6 X0 q9 R& X5 V$ H: b8 U' U: c" b% ^1 D
        printk(KERN_INFO "LED unregister!\n");
3 O# R. R& W6 H0 U/ W+ N/ W}  E( D( o2 I- {" v6 N0 A  H5 W% {7 R

/ l+ W6 R& P% A" L* lmodule_init(led_platform_init);# @9 v* e, Z( z+ a) q  r2 ]  J: B
module_exit(led_platform_exit);
2 u2 y1 w% O4 Y( i5 `/ x, M! e9 O
MODULE_DESCRIPTION("Led platform driver");; n" z$ G" h& s$ P3 Z! Y# y! L6 |8 i
MODULE_AUTHOR("Tronlong");* ~2 [4 p* u! @4 Q
MODULE_LICENSE("GPL");
" [# d5 d: Y; d$ c" M% I/ S& a# t; I7 ^/ C' u7 A% o8 s* \" p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-2-25 21:45 , Processed in 0.039935 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表