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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 H6 \% t% N+ O" [4 n#include <linux/init.h>" E# y9 {5 S& G9 D8 O4 W
#include <linux/module.h>+ ?0 P+ F" ~0 B
#include <linux/kernel.h>
' Q4 z/ \% A* }$ [#include <linux/types.h>
$ q1 m* ~/ I( T( ~4 C1 |0 N- L( r#include <linux/gpio.h>% P: W" H1 P- E/ O: u
#include <linux/leds.h># P+ `7 o# {: H5 V3 t7 o
#include <linux/platform_device.h>
3 d+ a3 ~% M2 r0 e: X& t0 ]3 q& W" S6 a5 W& m/ ^
#include <asm/mach-types.h>
5 i& j0 u; Q# k3 D- o2 X) B/ j#include <asm/mach/arch.h>
( v; i- \! H+ t7 ^2 ~" u, _1 O#include <mach/da8xx.h>
1 b1 J+ D$ L1 y/ v/ ~5 [3 g' I' e0 ]#include <mach/mux.h>
5 @; S# w, b! {
6 O: E0 }5 c; \! ?: P, I& P& t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- {% z- s# a% K
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 [7 O" O2 |3 B
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
* U3 \/ j- w, t+ e2 q5 K/ B1 C7 v#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" q3 Z! R- A1 r3 O2 E0 @" y' \% C6 O

: T: M" I5 b1 B" ]/* assign the tl som board LED-GPIOs*/
" C1 F' W6 f4 m& n/ cstatic const short da850_evm_tl_user_led_pins[] = {. f+ N9 J# X9 {' V& S& }( k
        /* These pins are definition at <mach/mux.h> file */
% d4 f$ e& [" i) X8 [3 D, _) |# K& p        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,; F. _  F' R( d0 ]- J
        -1
( U( M" V( E. T};
% ]' T  q* h/ ^
  j/ x/ Z0 M4 D" U( ~1 q, Estatic struct gpio_led da850_evm_tl_leds[] = {
8 O+ |+ w7 x5 G" K% S, F        {
* T0 E2 u5 x" ^; I2 H( ~                .active_low = 0," C+ n7 F1 y6 B! A" i% M
                .gpio = DA850_USER_LED0,8 ^, i+ W4 I; ~" I9 i
                .name = "user_led0",
+ J/ d6 A+ [: k. L: z                .default_trigger = "default-on",
0 ?$ _* [  J& e( K. [0 @) H: T        },8 c0 A% b& c& D$ q# h+ ]& T* `, F
        {4 s1 I# M; e, x0 c' ^. m
                .active_low = 0," |# d* `; K1 x
                .gpio = DA850_USER_LED1,; c( J1 X) D; e* [( i+ L8 X' h/ H
                .name = "user_led1",
" l  l8 F0 s2 z# |0 W$ n                .default_trigger = "default-on",2 ?  m9 q" v  m! r; j/ ^  F. H8 h3 M( @
        },) ^3 r5 ~! ^  a! K4 h) I7 T
        {- r3 b( S& b" l0 m
                .active_low = 0,
. O7 Q0 v6 u2 U# ?2 `8 j                .gpio = DA850_USER_LED2,1 z, M6 y$ F" P
                .name = "user_led2",* @# z/ q- `% ~
                .default_trigger = "default-on",
$ t# m# |6 @) ]# s( U$ T; w7 ^* c* I        },
! a, J8 ]& v* M/ y4 u7 _        {
- L- t6 `: R' ?, d( T+ b$ m  M                .active_low = 0,6 V% j: e5 t! _5 k  {* I( ?
                .gpio = DA850_USER_LED3,
) @4 G: G- O1 g4 L! P3 Y                .name = "user_led3",
9 `2 d6 D) n3 n7 w% @                .default_trigger = "default-on",
0 c0 g: \5 B4 z2 x. @* B* H1 o        },! x6 Y: w" H# {. h
};
1 `9 P# i) X$ o, ]6 k& Y: n8 d' \8 \$ ?, ^4 N( t; \+ N# N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 h0 s3 C0 U: b
        .leds = da850_evm_tl_leds,
( R2 n$ h. o/ Y: ^7 G  W1 D- D2 d9 Z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 C8 o0 ~4 n, y" p5 L9 J
};4 Q! p: O/ G' @# g7 R* _

% l* g; r2 H7 Z6 _% x# ?1 o8 _. ostatic void led_dev_release(struct device *dev)# M1 q7 J5 ~" {( g% {4 A  P( q
{
3 {1 g3 b3 G( M0 ~' T# ^};
0 k- U' Z0 X) k, V' ~! `  w3 Y3 b4 m% j: l) A
static struct platform_device da850_evm_tl_leds_device = {5 u; r, S7 n, c& ^" E; X9 n
        .name                = "leds-gpio",
! g4 d/ Z( b! E8 A+ A9 s& E  m- v        .id                = 1,
7 g6 Z" [( Y" S* `8 B7 _, [        .dev = {: M8 U* X! `. ^$ L! k
                .platform_data = &da850_evm_tl_leds_pdata,
# W/ H) e" q. G( p* r* u9 R9 t3 l                .release = led_dev_release,8 W/ X# s; E' f% N1 ^
        }6 [# T7 a; g7 N9 q) r
};
3 L, w" k: r: g# ]# _) a! x  g& n9 k. }9 ~; d; ~+ _, }; ~/ i% R
static int __init led_platform_init(void)
$ h& ~# O3 G, k- T$ B6 e. {# c{7 r, _1 B, h9 p1 j, ]
        int ret;2 X- z2 S/ X% g& j2 Q6 J/ i
#if 03 y, j9 W% ^) ~' G! b0 @* o$ \
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: X8 P0 v# @8 ^+ Y0 y- B4 n* C        if (ret)
9 B9 E. G) M: ^: P3 [6 N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 }) C$ i/ ^# ~& a& l- `2 z                                "%d\n", ret);: U9 t7 P; ?5 z( p5 J6 v
#endif! c! z& B  Y3 q: s% r
        ret = platform_device_register(&da850_evm_tl_leds_device);8 f' y) O5 x( t& j: B1 t: p+ m
        if (ret)! @! Q0 g/ U& W1 k
                pr_warning("Could not register som GPIO expander LEDS");; w/ x2 a& @( ]/ Q3 V7 m- G' U
        else
2 b0 L, {4 k$ n                printk(KERN_INFO "LED register sucessful!\n");) \' r, ^& z9 l, _4 G

' G" I1 l$ r4 {& \9 u        return ret;
. [/ Q- j$ d1 q6 A. j}6 B) [% U& t+ a' _

2 r, V* J5 g+ Z1 O) H; Gstatic void __exit led_platform_exit(void)
8 R" l$ b8 ?6 V% S; u4 P9 s{
5 A/ K5 |& i2 |5 [  f+ D9 s  ^        platform_device_unregister(&da850_evm_tl_leds_device);) |* d5 Y, D  V1 D2 _# G! }& l: O7 Y

! W4 L) f; H5 P; u4 t        printk(KERN_INFO "LED unregister!\n");4 m9 Z6 c( b: c+ W9 R
}
- n2 q3 F$ n+ ~! r! V4 H/ \; s0 N. Z/ `: @+ D$ K
module_init(led_platform_init);2 O3 {6 ~1 B- x# `+ a* X+ i
module_exit(led_platform_exit);6 O- h/ r; n' C7 J
- z6 p  r% l6 B& `7 d0 }( B
MODULE_DESCRIPTION("Led platform driver");
# o% G3 m' j) U5 _6 WMODULE_AUTHOR("Tronlong");
; F0 n- h- Y; B/ b( u9 tMODULE_LICENSE("GPL");
- N! ~+ }, `2 v8 ^4 t1 {
; r6 D, `+ {8 ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 12:59 , Processed in 0.039160 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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