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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 `$ @% e1 k$ J" M( G# v: c0 l; F#include <linux/init.h>5 h3 S& j3 z/ A8 O7 n
#include <linux/module.h>8 h- R9 }' x) i3 `2 U
#include <linux/kernel.h>
: q' T0 r& L$ {: t  d$ ?/ x#include <linux/types.h>
( B$ Z& `0 ?) P, ]2 l! r#include <linux/gpio.h>% Q. V4 G. b& S' S( I3 d, L% J. t  e
#include <linux/leds.h>6 c4 F& s3 P- s4 q) p8 W
#include <linux/platform_device.h>
) S) r. x" L" o% |$ T' I" h5 k. {% ~$ H. S5 v8 {" j
#include <asm/mach-types.h>
% a3 N9 X% [' v/ A! n#include <asm/mach/arch.h>7 y1 z7 Q; o4 g3 `8 A
#include <mach/da8xx.h>
' \/ H. X9 y1 x) H7 H2 ]& e+ I#include <mach/mux.h>
$ {: I5 G9 C) ]3 ^$ g* ]- b
' p$ X% m- {# N9 m, x#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 W7 x4 p) m) Z- ]( _* K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 @9 I6 r/ {  L3 H9 {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 U: p+ z8 x0 B! U- k! h" v2 x# N
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): V! g* E# g) L' N4 k

4 T7 F/ n( u" X' s3 Y, R/* assign the tl som board LED-GPIOs*/
. e: M0 Z/ ^5 g* N( h+ W1 Tstatic const short da850_evm_tl_user_led_pins[] = {
' x, Y4 u+ W& A) ?$ H        /* These pins are definition at <mach/mux.h> file */. @, a$ }, x2 e* t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( y6 L3 M& q/ N/ F8 Q; G6 B( X
        -1
% d& Z+ E2 l; }3 w5 z" `/ d};4 l2 A# c+ ~, m  H) p0 ^/ ?

% Q) D. e) F0 Q( f4 C/ Lstatic struct gpio_led da850_evm_tl_leds[] = {+ _2 q: q4 S0 Y) g, E8 B
        {( s# y7 _/ v' c( l5 Y7 h3 g2 W
                .active_low = 0,
0 ?, g' t  K) y' I                .gpio = DA850_USER_LED0,
' R& [6 _; w; O                .name = "user_led0",+ P0 [7 R7 B4 T0 ?
                .default_trigger = "default-on",
6 ^9 ^6 ~; B! h        },  w/ U5 ]' _/ D1 k2 d
        {
' i8 M% K  R# r                .active_low = 0,
: B' s) A! \5 X, B+ R                .gpio = DA850_USER_LED1,
5 g0 H) f8 Y' g2 q: h                .name = "user_led1",7 K9 k3 A& {0 `- A
                .default_trigger = "default-on",- o- s* c/ c$ m5 v. x, \9 L
        },
( C, p# P/ m; w6 B        {
3 j- W+ s! U' D( D                .active_low = 0,
7 j, j. {/ X' v  C7 y/ F                .gpio = DA850_USER_LED2,- n( Y; V5 p: F
                .name = "user_led2",4 \/ D5 H' d, t, q
                .default_trigger = "default-on",7 ]% F  D3 H% {. `& X7 n# e
        },4 r8 F" o9 a3 K9 l; z
        {' v  u- K. U0 ]) u2 U
                .active_low = 0,
4 o1 l* z0 V' x' N: O. c                .gpio = DA850_USER_LED3,+ H1 e4 O$ z! J) `$ o! G
                .name = "user_led3",
7 \$ c1 J  _. W                .default_trigger = "default-on",
. e# C* C5 E( @        },) S, C+ p4 E8 n9 V
};: Z3 i1 N9 J6 X  {( b* D/ r" _
6 |, V0 Q2 k6 g, n) |4 o. `# a" f- v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* Q8 p, O: e, x        .leds = da850_evm_tl_leds,
: a) C: R- R1 D6 H) r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ F! Q1 Z  {* _/ F};4 A$ r1 k8 L4 Q
. \& H) B9 f* b% N* b/ `
static void led_dev_release(struct device *dev)7 ~1 U( T7 O  ?' W
{
5 J0 V* N/ r& i- Y3 S};- f% `- ?0 s5 _, W- ^( t# @) U
( v" u' F5 x: z. G% h; d
static struct platform_device da850_evm_tl_leds_device = {2 P( A, E2 h5 H1 Z
        .name                = "leds-gpio",
8 \! e4 L8 P5 `5 f  v2 e5 E        .id                = 1,
, ?0 `& S6 n+ k* H! t  e: M        .dev = {# S+ I% W0 n( C% U6 ^/ L3 k# }: v
                .platform_data = &da850_evm_tl_leds_pdata,: [" G8 K  R* g* K% U+ y
                .release = led_dev_release,
* Y  ^5 m* b/ I9 }9 Z% ~        }: C: Q# t5 u8 Z2 w
};8 g; }' ^" r  Y2 |: [
' ^4 R* S1 f# x9 _7 [; l3 @% \
static int __init led_platform_init(void)
- B. s% O  x7 [: t. J. Z{0 x: Y( J& `8 j0 ]( V9 i
        int ret;
( J7 _1 H8 ^5 R- v+ P) Z* t#if 0! J) s0 Y& E4 e* _: b" i: @
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) Z+ b. [# n, w- A4 D. b
        if (ret)
% h" |2 ?0 A  C) `" S2 g# V' ~                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 @/ S) V8 ]7 a2 u
                                "%d\n", ret);! L  o0 i( Z+ q2 q4 q; s$ [
#endif+ i) |0 G  S! Z5 }& U/ `1 t8 i" u
        ret = platform_device_register(&da850_evm_tl_leds_device);
  I) ^' f: U/ R1 e* M        if (ret)
, T- t( ?6 r% ^! ]3 q' E0 W$ @0 I                pr_warning("Could not register som GPIO expander LEDS");! r) }" A0 j& _4 U/ T0 g# R
        else
1 K3 V+ y+ n0 `5 z5 I- f1 {3 x                printk(KERN_INFO "LED register sucessful!\n");4 `/ A. b4 y% i  v; I8 n

) o. _: G3 ?1 i% ^4 _, Z        return ret;% }; M, V" q5 }0 e* n8 g
}
+ |0 j6 V& H8 ?1 Q' f8 n( w
* h; B& e4 c' Y# i4 W8 k* Vstatic void __exit led_platform_exit(void). i3 }4 y) m8 Q! o
{
0 Q3 Z, B  F! f8 T        platform_device_unregister(&da850_evm_tl_leds_device);# f1 q- y: p0 O
' N3 C4 R2 M* {( k/ Z2 t) U2 H
        printk(KERN_INFO "LED unregister!\n");( s2 O6 e/ C' o5 o# k8 ^
}
, B& D8 G3 Z8 D# z, s! U
9 [$ u3 T- m. Mmodule_init(led_platform_init);" j' v: p/ {( y& p. W. }+ M2 B+ W
module_exit(led_platform_exit);
0 X* v/ k" j/ b1 o1 C$ c
! c2 \7 J7 D! ^  o1 W9 B, E% T* [3 s( gMODULE_DESCRIPTION("Led platform driver");
1 k! I4 Q6 ]; G3 b2 r% R7 K: X6 EMODULE_AUTHOR("Tronlong");
1 h7 G$ g" b3 F" o) K1 Y, ~5 ~MODULE_LICENSE("GPL");. y7 C& h7 Y9 F; E

7 j) i, W( H% s0 ]" K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-8 16:45 , Processed in 0.039642 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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