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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' T( ?5 G; C: `% k8 ]2 F#include <linux/init.h>& ?+ q+ T# a9 S% I* J7 ~$ }
#include <linux/module.h>1 h! Q: {) g  S- ?/ N% F
#include <linux/kernel.h>- o1 v$ G9 Q: e/ W6 B& r
#include <linux/types.h>
% Y$ U6 X! G( p; {# o; T2 H#include <linux/gpio.h>" h0 g5 y  c7 @, u' n0 ?
#include <linux/leds.h>
3 N. E3 b8 D7 g4 ~#include <linux/platform_device.h>1 ?. M& j" C  z& B1 H7 r& \
4 E& c& t6 @- @- D5 _& p4 N
#include <asm/mach-types.h>
0 S! P7 i& P( |3 h& |* q#include <asm/mach/arch.h>
; x. d# |+ o6 l' Z' g% Z7 B#include <mach/da8xx.h>6 l% Y; T" g. `- Y& t
#include <mach/mux.h>
: I! t1 N  h- x3 u( v6 I9 G) g( y4 w9 h; U- a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); V5 k# j4 V  v
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 l7 V  ^" g- i: M7 S* M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 k1 [. ?6 S. v6 ^5 J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ B8 b5 `' T3 T: F/ U; M
+ _5 Y3 n# F" X: F: c. U# T7 g/* assign the tl som board LED-GPIOs*/' _; D& N& f9 z  {
static const short da850_evm_tl_user_led_pins[] = {+ u1 [" m( }) l7 M  Y
        /* These pins are definition at <mach/mux.h> file */
( K5 g. }1 ]6 M( `        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& I( g7 t$ [. P( g        -1
3 z" `/ x6 r" g, k- e2 P7 s};" ?3 R( f! f7 i6 N/ g

0 f- ]" N# m- ]static struct gpio_led da850_evm_tl_leds[] = {' x) B8 }/ w% t' x/ s& v
        {# i3 w2 J0 u: o% B% d: y' O  {
                .active_low = 0,' V, ^! T! e9 x% a
                .gpio = DA850_USER_LED0,
, I" G- z7 f4 X  g1 Z                .name = "user_led0",
* `% X1 k" \$ @! ?2 g, L- p7 H                .default_trigger = "default-on",2 Q) U4 C6 d, a/ F; Y
        },
* Y' p! k( C. G3 q" h* O: G        {1 P2 d5 B1 U. W# m2 B6 f% {& f6 K+ i
                .active_low = 0,$ I, V+ x' t  ~  G) Q" f  A3 P# K
                .gpio = DA850_USER_LED1,
8 A2 g5 ]5 X: P6 q4 Q. r& ?                .name = "user_led1",
2 p$ g* W. {, ]" r$ M; q                .default_trigger = "default-on",
8 m. L, @2 Z* j; T' |8 w        },
8 n9 F! q, c3 ?7 }8 q        {
" W4 Y1 U( D2 P4 v/ J                .active_low = 0,
' z( I* S3 c" h  q  m1 u8 Z                .gpio = DA850_USER_LED2,4 H% L& `* V7 y
                .name = "user_led2",
, r0 H1 M( l/ w' O) X                .default_trigger = "default-on",$ v) |$ n, h$ e$ l/ s+ @+ F* k
        },
5 k, Q+ V. X# `6 S) f3 u        {
$ l- A& b' S& |                .active_low = 0,
6 b/ X& A7 M8 o+ M5 T9 y4 i                .gpio = DA850_USER_LED3,
: I; r8 Z8 p0 j  s6 \2 k. b8 h                .name = "user_led3",+ b# J% v, i$ T  i; I' v
                .default_trigger = "default-on",* l- {, `$ {2 V6 k) m7 ?9 D" i
        },. n2 y% i6 N' q
};+ @/ [7 M% n/ [

  Z. D) Q7 j- B9 {. b1 [: V. M1 Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! V; V3 @6 L, l& |% l+ ?
        .leds = da850_evm_tl_leds,
! r! ^0 q8 L) U- _        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( w# _. R/ V  [2 l$ \};
8 [8 r% T: m' S( g& j% r. C' Y# \
static void led_dev_release(struct device *dev)
' o7 m5 G" }" D0 ]* K. {; ?# s{( @+ D2 |' y7 ~0 q8 Z2 C
};
; I) T6 b) j9 k. a! Z& t$ h/ a0 a/ |0 r9 P' f9 A2 W# C0 D! T2 b
static struct platform_device da850_evm_tl_leds_device = {
: P' D; Q* C; S' g3 I! \8 ]2 M# N        .name                = "leds-gpio",
$ c+ d9 @* ^3 V+ U        .id                = 1,- I  I7 c0 e2 e3 }/ y
        .dev = {# {7 ?6 j+ S% U  ^/ K: P2 l1 s$ u9 Y
                .platform_data = &da850_evm_tl_leds_pdata,( I# Z" }# M) ~9 y/ Y
                .release = led_dev_release,' {+ F& {; B- r7 f0 b
        }
/ E: ~" g. z1 y* Q  ]0 ]};
% e$ ]8 C% c6 C. m  U/ {* r7 M0 A8 j0 _* T" c. @8 {  X
static int __init led_platform_init(void)
- w- f6 [* V: M9 R) T. K{2 A% K! A. A% I/ x5 \) {. E
        int ret;$ ?, a+ B. g3 [! t( e% E
#if 0
  _& K/ l0 h6 }9 b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" v! Q# z- \6 A+ R
        if (ret)" ~# m' ]2 t# P* [; w9 A
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% y) ^  P+ S* q# U                                "%d\n", ret);0 q0 ]  H8 J' w4 ?
#endif
" E2 ?  Z4 `' {        ret = platform_device_register(&da850_evm_tl_leds_device);" u6 P% I9 c* n! ?1 Q
        if (ret)
) f5 M3 k, l' U5 D! w5 v& K                pr_warning("Could not register som GPIO expander LEDS");
1 ~; r6 {9 b. v% D% m        else  F7 c1 P' W' r5 N
                printk(KERN_INFO "LED register sucessful!\n");( D, H# r1 I! E' I4 d
8 W7 n5 @0 C: J
        return ret;: J4 Y9 b: b* |2 i7 S  o
}
9 \& `: H# L; E! [6 v, X: B1 b' T8 e+ j( N0 s. W: l
static void __exit led_platform_exit(void)
3 ~- l7 w" a# W5 W5 Z2 B{
: v9 F$ c9 _4 w) n        platform_device_unregister(&da850_evm_tl_leds_device);  E9 P" {$ Z! C
' w% ^& P- \- c  a3 o
        printk(KERN_INFO "LED unregister!\n");
. W1 p! i& W% j' z}
0 e' m* H/ N+ @/ J( J9 I. j
& D: F9 h0 P4 z# m8 a% S- rmodule_init(led_platform_init);8 D' S6 U5 E% h4 z! M8 z& G
module_exit(led_platform_exit);
6 e! u! V! h+ Q3 w. |7 y2 P# B, L4 c/ P6 Q+ o6 h/ j' e2 M
MODULE_DESCRIPTION("Led platform driver");
  p7 W0 n4 M, ~  t4 S* }6 NMODULE_AUTHOR("Tronlong");
1 y! ~5 s$ a% O2 O4 w; q* pMODULE_LICENSE("GPL");, L6 R* |" c8 ]

7 E( K, L, Y/ ]& f0 N8 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-25 01:19 , Processed in 0.043714 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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