程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
2 r6 t# y! }/ ~. `+ b& X- P4 S* D& x#include <linux/init.h>6 f, V" ^$ O; `- Q8 R! R: n! ~. d* V
#include <linux/module.h>6 B9 }' G( A/ ?$ P2 H. O0 l
#include <linux/kernel.h>
% l7 g+ ^8 ~! b+ d0 z#include <linux/types.h>; _  f; U6 s0 Q3 h) j5 k# _
#include <linux/gpio.h>
1 B8 E' e" n9 B/ U2 L#include <linux/leds.h>5 Z0 u5 {& A: ?7 H% s: x
#include <linux/platform_device.h>% a& c' F& D2 ~; E. n! d7 l
: I. `" i* G; ^- c( D9 s
#include <asm/mach-types.h>
3 w' ]+ B1 `' y#include <asm/mach/arch.h>
5 K+ P) m, G$ D) H- n6 Y6 b2 s#include <mach/da8xx.h>
5 M) b3 a2 B1 w#include <mach/mux.h>
* v/ u# c1 k, {- P% X" @
, ^8 v9 D; b* U% r/ c& @; J. T$ Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ h: v% {* M) O9 e  R+ c6 ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: B7 B+ g1 l. q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 G6 s8 \# L3 {3 d& u: t( E  L; m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 a. t3 J6 e" h% e& ^/ W8 M

% }& _, ~. Y. I# k# A* n8 O/* assign the tl som board LED-GPIOs*/
$ M9 M8 U) L+ B( e9 g, A# @static const short da850_evm_tl_user_led_pins[] = {$ M" t9 V% D' S$ S8 G0 O
        /* These pins are definition at <mach/mux.h> file */
5 ?5 g. u% w; R        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 N9 P/ l, ~. V; Y( t- i$ t! R7 t        -1
5 A, t- h5 T# ]2 R% L};' H/ |' A- O2 n+ |

2 I+ S# F( O/ Z. mstatic struct gpio_led da850_evm_tl_leds[] = {* e$ R. S4 q; g. i# z
        {
% E9 n; {2 g( P* I) z. ?' t; A                .active_low = 0,
/ S6 c& T$ J) I, F- P! ^6 X                .gpio = DA850_USER_LED0,  Y: `) U6 \( t- f) ^
                .name = "user_led0",
2 w! \0 ]* {- I& s5 q# Y% ]                .default_trigger = "default-on",2 f* {% |9 G0 G- ^5 N
        },# d% M% e/ I+ y( A% z1 R4 m+ R
        {; Z2 |, t  P* \2 Y7 z8 l& k
                .active_low = 0,
2 U4 W7 f2 [- E% Y+ a3 \9 M                .gpio = DA850_USER_LED1,
, z( M1 `; m7 n$ f" W  G                .name = "user_led1",
: |7 C& {( Z# K5 k                .default_trigger = "default-on",3 C. Q2 v) O1 _' Y, s% _0 u8 X
        },+ t/ x+ v" Z/ X" R2 \. i
        {/ u9 |2 m* u& @% [% H" m% ?$ H& \
                .active_low = 0,8 t. @/ V0 I. j# D/ X
                .gpio = DA850_USER_LED2,- ]& I* E& p, T8 u' H) z
                .name = "user_led2",
4 Z6 O! _( ~4 b, w                .default_trigger = "default-on",3 x" [9 T9 M1 v) m: Q
        },0 `# X. z, h, }7 `. J
        {
$ M0 i9 s9 C, i5 g/ J* c9 G% C                .active_low = 0,) X: l  {' `7 O: o, |+ \
                .gpio = DA850_USER_LED3,% S. G0 v1 y# \; e3 F% T( C: h
                .name = "user_led3",% t3 ?2 U5 o" H' P0 ~+ ~
                .default_trigger = "default-on",
/ t9 I& O4 Q% H- G" O$ d1 i1 q: r        },
$ Q6 {) D3 g1 w};" X% T; _/ Y; L+ x0 `

7 M5 k6 c/ l' [% i& t* N4 N6 Nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& K. Z. k3 E2 Z: W
        .leds = da850_evm_tl_leds,0 Q# d, Q3 `3 [; s: W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 G" C+ v/ e0 s  ^% G
};
% o6 a) {/ @6 Q1 Z& o% z
0 H5 v/ @8 S% }% qstatic void led_dev_release(struct device *dev)
6 E& R5 |' @0 _{" }8 n! z0 b5 e
};1 J4 L. D' }" \. Q7 n# d0 q3 ]4 ?
  u5 ?& O3 B! u6 s6 @, {. E
static struct platform_device da850_evm_tl_leds_device = {+ k3 S9 P' z( D1 r, f+ g: U% S7 d
        .name                = "leds-gpio",
* [0 _6 a( K  H: a$ a: H' b% }        .id                = 1,
' N$ ^' T7 s0 x6 l        .dev = {
2 r, y- X# N5 V; \                .platform_data = &da850_evm_tl_leds_pdata,
. k. |( C/ P  e5 W- G                .release = led_dev_release,
, n- b7 u* k8 M! i4 g$ L1 L        }
! k, k5 ?) K2 T, j/ i3 _( K; J9 Y};  b% G5 Z6 B+ k9 K4 e

/ d( z, K, J6 X5 }' c# sstatic int __init led_platform_init(void)
( O/ g8 k7 N# s+ F6 z( X{% U' G" N- b+ ?) _) Z/ s0 Y6 [
        int ret;
9 y  _$ D& l* D$ |0 `#if 0
# P2 `! O4 Q$ ?; Y3 g1 Z( x        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' g8 K; |4 M& f3 E2 z
        if (ret)
& m: H& e* \1 Z% K                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 o1 r) F) l% o( X) T2 j                                "%d\n", ret);  |  S. U9 X& w
#endif2 a, h2 k$ @# v2 f+ n  T. n
        ret = platform_device_register(&da850_evm_tl_leds_device);6 C" o7 \2 I# D
        if (ret)
: A. W/ m, X( j                pr_warning("Could not register som GPIO expander LEDS");
4 C8 T3 ]4 A# q4 d: r! e        else5 x' w; b" D0 t' ^  D# j; q
                printk(KERN_INFO "LED register sucessful!\n");8 j. G; _/ z, L/ F
# k- ]* r+ @9 e( ~
        return ret;/ o1 R2 t3 |, n# y5 F0 s" k( R
}
! r. e# n& L" F) Z. P6 W
! t/ C2 Q* f% F% gstatic void __exit led_platform_exit(void)* Y, i7 V! M9 w9 O$ T- |1 `( P/ @
{
2 K7 c1 G1 O  C# I        platform_device_unregister(&da850_evm_tl_leds_device);% k6 F2 J; W' o7 {8 x

' M& U6 q. @# H% m/ q8 X: t1 p        printk(KERN_INFO "LED unregister!\n");
: O9 {$ w  h: V3 ]$ X8 o8 v; ^' \* P}6 k0 S- P6 Q9 d7 F  |8 r( d3 h6 i
" r, ?/ n$ H0 f1 k
module_init(led_platform_init);) U8 n3 `/ `: ]8 d/ J, d" L' P1 v! W' _
module_exit(led_platform_exit);
6 l  b, h! z5 k( C' [7 j
' S1 L0 v) q7 {' ~$ `3 jMODULE_DESCRIPTION("Led platform driver");
4 o& x( C$ j' K% iMODULE_AUTHOR("Tronlong");
' i7 u0 Q/ W$ E$ HMODULE_LICENSE("GPL");
: N. B9 L5 \; o8 h5 o. `# f/ Y0 \! Z8 [, u: r; Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 04:19 , Processed in 0.035756 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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