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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& d8 `& e2 x. r3 N" p#include <linux/init.h>
: a  W, X3 a; ~% H2 w" b7 l#include <linux/module.h>
- a2 a' }7 s$ \; R$ f; G$ d#include <linux/kernel.h>, N% R! K& L/ b/ |( z$ O
#include <linux/types.h>8 K8 l/ }+ T) B4 I: E
#include <linux/gpio.h>6 k1 E8 a* Z' H$ @- L7 }
#include <linux/leds.h>4 B. N9 I7 K2 K5 X% G" ]
#include <linux/platform_device.h>7 B( z' }/ A3 t2 y+ {1 f
& l, Q$ ]9 a1 A# w
#include <asm/mach-types.h>1 |/ |2 y( W4 Z9 B$ i3 |4 G
#include <asm/mach/arch.h>& ?2 Y2 e/ m& {
#include <mach/da8xx.h>5 A# ]( [/ ?8 m& o, @' d8 C% D
#include <mach/mux.h>
) U* x& _/ j& O  {6 j+ K! F/ D/ E  W& }3 E% {: |) L6 g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( B0 ^5 q; B8 g* v' m! f
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# b: t! a1 k" ]0 {! J0 ?( p  W
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 j. q' W1 n7 X3 v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 c* w8 K4 G9 }* ]6 f( u! b
6 N$ G' i, U; j/ b/* assign the tl som board LED-GPIOs*/+ ^/ v; c- W! E% t2 |
static const short da850_evm_tl_user_led_pins[] = {
8 ^  P2 L) d2 Y2 D0 x5 U' o        /* These pins are definition at <mach/mux.h> file */5 P) _  Y: L0 g! p* `; O/ d1 k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& O$ |3 K$ k1 K' ^
        -1
/ o5 v" ]7 [" H0 z9 |! p/ {};) o' A, s0 @4 M& b  w

/ ~0 k/ s" L5 [static struct gpio_led da850_evm_tl_leds[] = {0 c' v, M, r# |& o8 T0 |- U1 }1 K2 i
        {7 q( w* A' u, k, w
                .active_low = 0,
' O' R' c' X, O( e' x  h: d                .gpio = DA850_USER_LED0,3 F& `/ V% d4 R. l) E1 o
                .name = "user_led0",6 j5 j$ X' D: H& w) g
                .default_trigger = "default-on",
/ M+ y( K) D& {! c- F        },
3 Q. ]/ A- |. M: l" m# V* R        {! l- [+ U( X; M/ N  q' N" `
                .active_low = 0,) L- \) M4 I' M7 B+ c
                .gpio = DA850_USER_LED1,/ P  K2 F8 R9 y- H7 v* M* S
                .name = "user_led1",, u# P: }! ~1 L
                .default_trigger = "default-on",
$ \$ S6 P' h% r" H  m* Z        },+ @! {$ z3 p6 b5 J$ {7 [' J
        {
6 x5 V9 ]7 @; E* Y, p* c                .active_low = 0,
8 W/ i( j+ i5 y  ~5 z' ^                .gpio = DA850_USER_LED2,
3 _6 i. i3 C2 ?2 u                .name = "user_led2",
/ p. D; L' e2 k% A. f* A2 H, a                .default_trigger = "default-on"," Y( }/ y" n9 n& |& J* L
        },2 {7 W4 D$ l) {' r. b4 e' y$ v
        {) y* I. h& }! w. ~+ b
                .active_low = 0,
) [  E# t5 F+ n4 K/ v7 A                .gpio = DA850_USER_LED3,
4 N8 V# E* X0 d9 A& e                .name = "user_led3"," X5 }- |7 g: m! @1 e2 }
                .default_trigger = "default-on",
& S7 g4 }) b7 {. z/ z        },
5 b2 t% M" v" l% u9 |+ H};
0 i$ v# k% f# F) u! u: S; S/ U0 w/ g+ e( r8 a9 z  m
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# c1 X5 J# e+ c
        .leds = da850_evm_tl_leds,9 y& T6 \: z6 ]/ x2 X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ u, B7 a: k2 ~2 c* |  w+ W/ B};- |! A; @; O% k; f. j+ n

6 L' W( ?2 A- Z9 M- `! ]! u; cstatic void led_dev_release(struct device *dev)
/ o5 W# J. l- ]# P/ _/ P4 W{
5 y6 Z7 @/ Z  _) B/ I! Z4 j};8 E( E# f1 G. c( |9 b# Q
; z- a+ _" U: M6 U4 A# b9 g9 P& l+ q
static struct platform_device da850_evm_tl_leds_device = {  z; z- Y3 G9 _6 N, c0 C
        .name                = "leds-gpio",
9 u  v5 ~$ k0 j) G* V0 M        .id                = 1,
" D3 J( s' R8 R# m3 A! O0 G& e0 N! @        .dev = {
* Y* e# E0 u4 A! t" r$ l9 ?: Z                .platform_data = &da850_evm_tl_leds_pdata,* Z7 x. S# J% N# u! r3 f6 X$ Z9 v* O7 z
                .release = led_dev_release,* B1 u2 U4 ?" w2 T5 _% ?1 l. c
        }
5 x& n* t4 _, l};% L$ Z" z" P8 K) w) a/ v
, s3 R3 G7 U1 L/ y) {/ z8 {
static int __init led_platform_init(void)
6 i4 c% G# q2 `8 o4 n! b+ ?6 w{
8 v# _% Y# R7 K8 z# j! b        int ret;
$ b! p0 T2 |" |$ D1 M#if 0' i  {9 I6 p$ g/ r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% j+ N3 d3 m- K" s% M4 e- a
        if (ret)7 S; q* W6 i: {  `- L/ r
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; R# L8 ^9 J& o
                                "%d\n", ret);& \9 j5 U+ U" b
#endif
% q8 k; j9 T4 \) L6 N( i, c. t        ret = platform_device_register(&da850_evm_tl_leds_device);
( O, p& V2 d7 B/ n        if (ret). w4 K$ H) Z6 W' R) v5 X
                pr_warning("Could not register som GPIO expander LEDS");7 f6 B* W' \2 h8 ~6 |/ f+ g
        else* Q' h* Y- Q9 Y- E6 v, K
                printk(KERN_INFO "LED register sucessful!\n");
! S" j# @1 k: b3 U6 I' B6 y, Z2 k6 X6 W# q9 z- Q$ C6 M* a
        return ret;
) ^; g5 a, C: y) s2 D" H}
7 G) l9 G% D$ C' U9 C! {4 b$ _. a8 I3 y! \  @) ~+ }. L% t' V0 T
static void __exit led_platform_exit(void)
5 k6 T, a0 x/ W- p{
0 K) F7 N' E$ g        platform_device_unregister(&da850_evm_tl_leds_device);
. b! L' p. F2 q0 S
6 C) m7 K% @; S8 q  F5 I3 B# b        printk(KERN_INFO "LED unregister!\n");
) ]7 F5 T/ S4 M9 q5 ~6 T}
9 H: @  Q, `3 W' Y+ A. d8 E; M6 m
5 G5 P/ S! F- u! Nmodule_init(led_platform_init);- u& w; f% R8 W% v! }$ w( E
module_exit(led_platform_exit);+ D3 e' p& ~& d1 f0 q1 j

. k: a8 E* N: F7 K4 kMODULE_DESCRIPTION("Led platform driver");
' E0 u- U' b( [+ Z0 S: `5 zMODULE_AUTHOR("Tronlong");
6 ^! ]1 @( b- G! ~8 X* F0 FMODULE_LICENSE("GPL");; C9 H- @9 j- }" B- J
! r, S' p4 n0 ?, ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 11:11 , Processed in 0.040042 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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