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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 A* d  i/ [) s% u' g% o2 j& D! n
#include <linux/init.h>' O) m# x, V& z( o5 C! {
#include <linux/module.h>1 {, }0 v5 p* v7 A9 w+ ?/ W! f+ D
#include <linux/kernel.h>
; _4 O, u9 B. @6 V3 m) m/ o0 b#include <linux/types.h>2 g' s1 [; B( p
#include <linux/gpio.h>
2 ~. t- @" E9 z9 h) c#include <linux/leds.h>1 D: a, m' p, w$ x4 Y  Q' ^; z/ X
#include <linux/platform_device.h>
! Y6 o6 d- h9 |) o7 H# Y: R# E9 [, t. G/ [, T
#include <asm/mach-types.h>
4 d4 g! f+ Y! {; y' k6 F# m#include <asm/mach/arch.h>
6 Z  j* G- H7 [% [3 u- E#include <mach/da8xx.h>  I/ S$ N6 ?2 O+ ?& Y0 e
#include <mach/mux.h>
9 h8 Z' d( g# P" j& [* c+ g  K
8 o/ L. N  s) g+ k# V#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 `# R2 t! q* w& C/ b- R5 ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( _) U' o% h% s' a3 _0 v0 q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' X3 p  d( E9 i+ ?0 m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, G/ g( b4 r# \2 S$ H" Z- u; Y
+ M$ _8 \; N$ P/* assign the tl som board LED-GPIOs*/! O3 x* D' |2 n% O
static const short da850_evm_tl_user_led_pins[] = {. M9 {: V2 s5 M% x- _
        /* These pins are definition at <mach/mux.h> file */% f: L9 `7 c5 `! u- k% @* I0 {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 o, {+ {4 z! m7 `
        -1# G( H5 r; j5 P* b% E4 o3 `, d. I
};
5 H1 [& `8 Q& m  J% r2 a, X
: t7 x; |- h+ [static struct gpio_led da850_evm_tl_leds[] = {
2 y, B) w: T0 p/ w0 H, C7 M; y        {. c% k3 ~( U9 k" u- @/ P5 d) B
                .active_low = 0,& J. X, ~' V& {7 i
                .gpio = DA850_USER_LED0,
# J( w: M* m9 Z9 I: W8 E0 g                .name = "user_led0",
$ z$ s& y/ ]  u$ M5 z5 q7 `/ c: ~                .default_trigger = "default-on",
( ]4 o8 r' T0 J  J# ]        },6 c0 j: i4 I2 E/ q9 X9 D
        {
+ s4 V. J& S  M" _                .active_low = 0,) ?8 g3 J1 P9 _' k* p" t
                .gpio = DA850_USER_LED1,& e2 H( J9 u) y& {0 k# U/ d
                .name = "user_led1",5 n, {  Q/ a  a( ]( O
                .default_trigger = "default-on",
- ~* O+ S- B/ [1 a7 n' C$ v$ D        },; w( `9 D4 u1 k# X. g) F$ V
        {4 K* B7 O. y- D" c& [5 a
                .active_low = 0,- U$ L" D+ V$ [* I
                .gpio = DA850_USER_LED2,8 W; I3 a2 Q/ X! C8 d% d
                .name = "user_led2",/ p: D1 W* A! w; ?. t
                .default_trigger = "default-on",; D, e: u) D: z# |& Q! Z+ e
        },2 r' `+ b% o1 B
        {6 Z0 H% A$ \# i4 a5 g% K( h
                .active_low = 0,+ I3 u  r  ]$ g  |3 w
                .gpio = DA850_USER_LED3,$ a! @, P; c) e
                .name = "user_led3",2 T0 P5 h) @) C; u
                .default_trigger = "default-on"," ^5 I" b2 K$ e: V$ x% b, B1 A7 v4 R
        },
0 J& L$ b" D. H- G9 S};
/ I3 }$ `) g4 `% ^  e" m+ T' Y( }1 Q$ A0 ]. g* r
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& H& V8 s9 [4 B9 j        .leds = da850_evm_tl_leds,$ I4 T- g' Y8 p8 v& x
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, E+ ]5 N9 t& V: M7 N* e) q
};
1 c/ i" P8 V" X
2 c  N# O* s* ?- J0 Mstatic void led_dev_release(struct device *dev)' m( N& c+ m' V9 _( k8 ^
{7 k+ @( q* u) @, L7 l
};
9 L" p  V& j) t$ r3 i% j7 ^  [3 j1 Y0 D
static struct platform_device da850_evm_tl_leds_device = {# K- L+ Z! C, p1 f0 i
        .name                = "leds-gpio",( A1 Z. \& O7 E2 I$ @  ]& K3 C
        .id                = 1,
" `, `! U& w& W& `2 k        .dev = {1 x! z7 U) a3 q" A
                .platform_data = &da850_evm_tl_leds_pdata,
/ ?0 h# o+ ]$ Q' ?# G5 C0 X" H                .release = led_dev_release,
7 Y" _4 \" j; ~/ t& I& n3 R$ o3 W        }
& L, i: |, v7 n7 A; R6 b+ x( L' {};
/ ]. Z2 o, d5 Q1 y1 u* R# @
, E; e; B( _1 T2 Q' ?+ O# nstatic int __init led_platform_init(void)0 u) l( G* ^7 g; F& D
{; q; D/ a5 P' x( ]
        int ret;
  V# k1 o  ?# f9 _$ F) D#if 0
# a* f0 y2 J; P- V1 a        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  _$ i  Z$ i$ z# p) A        if (ret)2 m* e; }. e( T2 G
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' F- j% c4 Q) B& A. a; @/ T- E% Q8 j: U                                "%d\n", ret);
# o- U8 Z4 q9 s( y- @#endif" Y( k& ?' U' A
        ret = platform_device_register(&da850_evm_tl_leds_device);
5 f8 I5 p% n' J' }5 {& A9 x+ g$ ?        if (ret)
3 Q! d2 s: i& _$ b* a4 i# o                pr_warning("Could not register som GPIO expander LEDS");
- L  H* y3 i. q( L: Y8 M        else
6 m6 P2 O: w8 K                printk(KERN_INFO "LED register sucessful!\n");6 ~% O) G0 @- B: f/ ]( q
, t! d3 l; k* t7 }" O
        return ret;" Q7 U, q2 g- S' `; _' Q" v" _
}) G9 L8 E& l7 a% O" t( z0 ?+ I' `
4 g) {2 g5 I& T9 D3 v1 V" @
static void __exit led_platform_exit(void)
  X) Y# k1 u3 k$ a/ F7 T. f8 Q{
! V3 h2 o5 W+ d/ k) x        platform_device_unregister(&da850_evm_tl_leds_device);
% l: c( i% |" m2 ?3 Q, W$ V+ c5 i- X! d2 y- i: B
        printk(KERN_INFO "LED unregister!\n");. i( M6 W# ^! w9 A7 q
}: x: M% M- e$ @+ f+ G, h

7 |1 w: m* b/ ^0 p4 R. Qmodule_init(led_platform_init);
; Y5 i' z- p: S8 v2 o8 vmodule_exit(led_platform_exit);
6 I( T4 m. Y% ]$ A. K  _6 g9 }- V5 o2 }$ i4 T
MODULE_DESCRIPTION("Led platform driver");- C% l2 J; o1 g# Y4 Z4 C
MODULE_AUTHOR("Tronlong");* y' b2 M6 Q" ^* u' `
MODULE_LICENSE("GPL");3 _6 T7 T& L2 X( l( a

4 r0 u  P4 M' {& U+ X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-12 02:23 , Processed in 0.040413 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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