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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 R! P' q; E5 M& T' Q! d& {; B
#include <linux/init.h>
! W* a( ]9 F+ G9 U7 X- i8 ^3 ~# {#include <linux/module.h>7 A. z  r+ U( k) K6 z$ |$ I
#include <linux/kernel.h>* S1 h* T. g6 K9 V
#include <linux/types.h>
0 T4 G: t) a* h8 W6 a9 E; y#include <linux/gpio.h>. v2 n) t# s; l
#include <linux/leds.h>
; [! X9 A! r: W6 Z/ R1 d" ^#include <linux/platform_device.h>( g8 g1 Y+ P& c, l

. f/ @. L8 a2 t  H- |( \% T#include <asm/mach-types.h>) B) F3 [5 z" r
#include <asm/mach/arch.h>
! [. u, B) X1 I8 n+ O) U& v#include <mach/da8xx.h>5 j( u: G3 p: h& h6 H" L: Y
#include <mach/mux.h>
' _9 o- W1 a& ~7 a. B, \4 }7 _1 u, Y) {: i5 y# F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ q# x2 o2 J1 b3 R% g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- z; o9 w4 h; k  e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 P( U, b, _6 l3 v1 X8 c#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 r/ B& N( t) t' |% i4 f2 r! F4 S
/* assign the tl som board LED-GPIOs*/
5 F! p8 j3 j4 @" z- D# gstatic const short da850_evm_tl_user_led_pins[] = {  C& H% G0 `) {5 v9 N* D* Z
        /* These pins are definition at <mach/mux.h> file */) r! h% s6 f1 c0 O; @2 N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) ^- A/ T. [8 i( {1 ?
        -1) l3 A, i7 T* ]. _
};
3 X! o! _* _- O& B$ N
* ~/ T/ |6 R! A7 x' S, Nstatic struct gpio_led da850_evm_tl_leds[] = {* F3 u5 Z# K, E
        {
6 [2 u2 \6 u8 _) K4 }+ w6 Y                .active_low = 0,; j, c& p' m5 x% r: ?5 N5 Y. B
                .gpio = DA850_USER_LED0,  }' S' i% o6 I9 M6 C- T" G
                .name = "user_led0",
/ N0 b1 M! O1 Z0 f# n; R( S                .default_trigger = "default-on",+ F, p; w/ o/ E; h2 Y
        },
% \/ H& Q3 ]: r' V0 j        {9 F: o. Q9 v4 }/ l
                .active_low = 0,- d& a% f6 z! A! t, K+ A7 K
                .gpio = DA850_USER_LED1," h5 a3 R6 i, i; Z: n
                .name = "user_led1",. M9 u/ [2 A5 b$ ]2 \
                .default_trigger = "default-on",
4 |& U3 x) T7 e$ x1 h+ t0 R, P        },
+ w3 d* v' x/ E, Q1 O% h5 K' Q        {
  e0 E3 ^% r  A9 O  L                .active_low = 0,
5 y2 Q  s$ k' X( @( X" d: I                .gpio = DA850_USER_LED2,
0 c! x0 u$ U, D. e4 ?                .name = "user_led2",
+ W( ?+ K1 F6 l+ b                .default_trigger = "default-on",
& G# k4 A/ ]' M  z' H' e        },5 U5 u( D: o& w% _! {' o7 I$ \2 d8 h
        {
" h% ~, B9 H; w7 V                .active_low = 0,: f' t9 J1 J+ u% Z
                .gpio = DA850_USER_LED3,
) x% w9 F- V) D! X, Z, ~                .name = "user_led3",
" }1 j. w0 l$ I( Q4 A* S6 G                .default_trigger = "default-on",* d! F' d) s1 F* z( S1 n
        },
( ~9 T0 u. c- z) `};6 u3 D. Z0 K2 l2 q$ B) @
5 F# _8 V5 q, s$ w, d; p. P
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* a/ R& m4 L+ x$ N        .leds = da850_evm_tl_leds,
# H3 A1 |% x) ?        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' W+ U0 S+ G2 V" Q# [
};1 j' L/ G% g+ |4 X5 O/ i. F: p
& U- S# o' Z4 l, f- v  c; K* X
static void led_dev_release(struct device *dev)
# h/ l9 O& B2 j5 q{
/ B8 a. B  f) [5 ^& _* ~, z};6 V5 e9 Z/ t# ^  V. ]

+ c+ x6 W" W8 `/ b$ ]: W" @8 c* gstatic struct platform_device da850_evm_tl_leds_device = {
/ ^' K2 H. i; U  y0 Y6 w        .name                = "leds-gpio",
% E- L$ h" c3 W- V  N- c, O) k        .id                = 1,0 G1 ^/ e) Z# a0 J
        .dev = {
6 o6 F( O) s5 |  y8 ?# q                .platform_data = &da850_evm_tl_leds_pdata,
1 u8 I; R* E! R, K3 t2 `+ }                .release = led_dev_release,/ F5 H# q" {. v/ ?5 I
        }+ _% D2 L/ d) K. {. O; e0 s
};' M% c* a' u. m' J7 T1 c

; a* \9 C& j$ Q8 Y! Pstatic int __init led_platform_init(void)' i0 C4 _+ @: j" y0 M
{/ p/ y% P- f/ a% \
        int ret;
  Z8 n! h9 u& H- I. ]- N#if 0
+ S; B: A4 [% j2 p4 e        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 c/ a  ?+ J! E8 S- Q1 @9 j
        if (ret)
6 U! a$ u3 T% a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' \; ^' A; E# m
                                "%d\n", ret);# `8 E4 J" ]4 x
#endif$ v* x) q/ l% |4 |5 i
        ret = platform_device_register(&da850_evm_tl_leds_device);
: D" Q& t! m, K& D9 z/ a        if (ret)' m% v" i* I- a$ u; F; ~) C
                pr_warning("Could not register som GPIO expander LEDS");
* F" U) h5 G& v3 D% N4 v        else
+ p: v  m' d9 Q3 y                printk(KERN_INFO "LED register sucessful!\n");
7 {$ z7 s: |4 ]% ~+ I
: J$ A( W9 R/ U) W        return ret;" W1 \/ s4 b! E* P- v
}
* B- R2 {$ r& V+ I5 Y  h/ G5 v$ ^  [# G# J2 O* T/ H
static void __exit led_platform_exit(void)3 V! ~) L: n( ~; e
{
% f& ?5 ~7 A8 z2 y/ e  I4 T        platform_device_unregister(&da850_evm_tl_leds_device);+ G; ~, e5 H8 m7 ~2 I
' G2 u4 `* o, s2 {* R8 b' E
        printk(KERN_INFO "LED unregister!\n");
( G6 ^# i, o+ U. T( ^: _}
3 [! f5 |) n. W. N. ^. A; J. V( E$ w6 v9 t" x: L4 |
module_init(led_platform_init);
  ~3 B( @% f& H6 T% Hmodule_exit(led_platform_exit);
. F! v8 {) u5 [. H
. C. t" L' Y5 K5 P( B2 uMODULE_DESCRIPTION("Led platform driver");1 x; j; S6 K9 r3 R! }, u% v; P
MODULE_AUTHOR("Tronlong");
( ^  ^0 d4 A1 m7 g# s3 @3 Q  ?MODULE_LICENSE("GPL");2 e+ @: m4 }0 v% I
0 u/ o$ i: O& b! S' A6 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-17 06:32 , Processed in 0.038486 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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